HttpWebRequest会自动发送200 OK吗?

时间:2009-11-08 15:08:58

标签: c# http paypal

背景:我正在实施Paypal IPN处理程序。

Paypal上这个伟大的article表示我在阅读回复后需要向PayPal发送200 OK。

IPN请求的处理如下:

//Send the request to PayPal and get the response
StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), 
                         System.Text.Encoding.ASCII);
streamOut.Write(strRequest);
streamOut.Close();

StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
string strResponse = streamIn.ReadToEnd(); //returns VERIFIED
streamIn.Close();

根据以下内容(来自文章),代码(我猜)应该发送200 OK回Paypal:

PayPal will respond with either VERIFIED or INVALID. After you receive this response, be sure to send 200 OK to prevent additional attempts from PayPal to send an IPN

我没有看到任何显式的HTTP响应被发送为“200 OK”。

使用过的HttpWebRequest是否会自动发送200 OK?

如果是,那会发生什么?

如果没有,如何使用HttpWebRequest发送200 OK响应?使用HttpWebRequest或套接字更容易吗?

2 个答案:

答案 0 :(得分:5)

您真正要问的问题的简短答案是肯定的,如果您的页面成功执行,ASP.NET将发回200。您所指的文章中的一点是关于您向Paypal发送请求以响应它对您的请求,因此发送200与HttpWebRequest对象无关,正如某人已经指出的那样。

因此,就本文而言,如果您想将200发送回Paypal,一旦页面成功执行,ASP.NET将自动执行此操作。

答案 1 :(得分:0)

获得答案的最简单方法是使用Wireshark并查看来回发送的确切内容。