2009-11-08 67 views
6

背景:我正在實施Paypal IPN處理程序。HttpWebRequest是否自動發送200 OK?

Paypal上的這個偉大的article指出,在閱讀回覆後,我需要發送200 OK返回PayPal。

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(); 

根據下面的(從製品),代碼(I猜)應該發送一個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或套接字更容易嗎?

+1

我不熟悉這個paypal API,但是HttpWebRequest不發送狀態。它在發出請求時從服務器接收一個狀態。你能把鏈接指向你參考的文章嗎? – 2009-11-08 15:14:24

+0

哪個「關於貝寶的偉大文章」會是? – AnthonyWJones 2009-11-08 15:14:34

+0

對不起,我忘了粘貼鏈接。在這裏:http://www.codeproject.com/KB/aspnet/paypal_c_aspnet.aspx#PostPayment還編輯了這篇文章。 – Marek 2009-11-08 16:33:41

回答

4

對於你真正要問的問題的簡短回答是肯定的,如果你的頁面成功執行,ASP.NET將發回200。文中您指的是關於您向PayPal發送請求以迴應其請求,因此發送200與HttpWebRequest對象無關,因爲有人已經指出。

因此,就本文而言,如果您想將200發送回PayPal,ASP.NET將在頁面成功執行後自動執行此操作。

+0

非常感謝!現在對我來說很有意義。 「收到VERIFIED後,發送200 OK」部分令我感到困惑,因爲我認爲我應該將其發送回VERIFIED來自的地方。 – Marek 2009-11-09 06:52:53

0

獲得答案的最簡單方法是使用Wireshark並查看究竟是來回發送的。