2015-04-02 151 views
1

我有一個aspx頁面,只需打印即可屏蔽接收到的任何POST信息。鍵/值對傳遞給Label控件的Text屬性,並顯示爲以逗號分隔的字符串。接收POST數據時遇到問題

這是整個頁面。

<%@ Page Language="C#" %> 
<%@ Import Namespace ="System.IO" %> 
<%@ Import Namespace ="System.Web" %> 
<%@ Import Namespace ="System.Net" %> 
<%@ Import Namespace ="System.Text" %> 

<script runat="server"> 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     string initialUrl = HttpContext.Current.Request.Url.AbsoluteUri; 
     string[] keys = Request.Form.AllKeys; 
     string keyString = "POST KEY-VALUE PAIRS RECEIVED: "; 

     for (int i = 0; i < keys.Length; i++) 
     { 
      keyString += keys[i] + "=" + HttpContext.Current.Request.Form[keys[i]] + ", "; 
     } 

     Label1.Text = keyString; 
    } 

</script> 

<!DOCTYPE html> 

<html> 
<head runat="server"> 
    <meta name="viewport" content="width=device-width" /> 
    <title></title> 
</head> 

<body> 
    <div> 
     <asp:label ID="Label1" runat="server" text="Label"></asp:label> 
    </div> 
</body> 
</html> 

我正在使用Google Postman進行測試。當我使用Visual Studio 2013在調試模式下啓動解決方案時,然後使用Google Postman在本地主機發送一篇文章,它完美地工作。鍵/值對出現在頁面上。

但是,當我將頁面推送到我的共享主機(當前使用GoDaddy),然後使用Google Postman進行測試時,它不起作用。頁面加載但鍵/值對不出現。

http://www.parseci.com/ipn.aspx

看來,POST數據沒有被網頁收到時,它的活在我的GoDaddy的網站,我想不通爲什麼。

GoDaddy技術支持沒有幫助。

我錯過了什麼?

更新:我將ipn.aspx文件複製到私人擁有的服務器上,並使用Postman以及Chrome Advanced Rest Client進行測試。在POST到另一臺機器上的監聽器頁面時,兩者都像魅力一樣工作。

因此,我在一個私人擁有的公共Web服務器上取得了成功,但GoDaddy作爲主機沒有成功。

回答

0

的解決辦法是從URL接收POST除去的www。我將http://www.parseci.com/aspx.com更改爲http://parseci.com/ipn.aspx,並且POST到達並正確處理。

對於任何有同樣問題並努力實現功能性PayPal IPN監聽器頁面的人來說,該解決方案也可以與Paypal的IPN模擬器一起工作。通過從提供給模擬器的url中去除'www',它第一次成功地發佈到我的監聽器頁面。

0

它適用於Chrome Advanced Rest Client。你確定你正確地使用郵遞員並輸入參數作爲表單身體參數,而不是查詢參數或標題?

rest client screen shot

<!DOCTYPE html> 

<html> 
<head><meta name="viewport" content="width=device-width" /><title> 
</title></head> 

<body> 
    <div> 
     <span id="Label1">POST KEY-VALUE PAIRS RECEIVED: hello=nurse, </span> 
    </div> 
</body> 
</html> 

注:看來這只是爲了調試,但如果你把這個頁面各處,你可能希望進行編碼或消毒收到值。否則,您的網站可能會受到XSS/CSRF Javascript注入式攻擊。

編輯

嘗試過郵差,這也爲我工作。

Postman screen shot

+0

我不確定如何將圖像附加到評論中,但在Postman中有三個選項 - 1)表單數據,2)x-www-form-urlencoded和3)原始數據。我已經嘗試了所有三個無濟於事。 – 2015-04-02 19:02:11

+0

最終目標是讓此頁面收到PayPal IPN。我開始編寫頁面來接收和處理來自Paypal IPN的初始POST,但是我一直在收到錯誤,所以我試圖首先確認該頁面甚至是接收POST。那麼Chrome Rest Client和Paypal發送的內容有什麼區別呢? – 2015-04-02 19:06:19

+0

表單數據應該沒問題。用郵差屏幕快照更新。 – Barett 2015-04-02 20:10:37