无法接收POST数据

时间:2015-04-02 18:16:40

标签: post paypal-ipn postman

我有一个aspx页面,它只是打印到屏幕上作为POST接收的任何内容。键/值对传递给Label控件的Text属性,并显示为逗号分隔的字符串。

这是整个页面。

<%@ 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在localhost上发送一个帖子,它完美地运行。键/值对出现在页面上。

但是,当我将页面推送到我的共享主机(目前使用GoDaddy),然后使用Google Postman进行测试时,它无效。页面加载但不显示键/值对。

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

似乎页面在我的GoDaddy网站上显示时没有收到POST数据,我无法弄清楚原因。

GoDaddy技术支持没有帮助。

我错过了什么?

更新:我将ipn.aspx文件复制到私有服务器,并使用Postman和Chrome Advanced Rest Client进行测试。在POST到另一台机器上的监听器页面时,两者都像魅力一样。

所以我在一个私有的公共网络服务器上取得了成功,但GoDaddy作为主机并没有成功。

2 个答案:

答案 0 :(得分:0)

Chrome Advanced Rest Client适用于我。您确定正确使用Postman并输入参数作为表单正文参数,而不是查询参数或标题吗?

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

答案 1 :(得分:0)

解决方案是删除&#39; www&#39;从接收POST的URL。我将http://www.parseci.com/aspx.com更改为http://parseci.com/ipn.aspx并且POST到达并正确处理。

对于任何遇到相同问题并致力于功能性Paypal IPN监听器页面的人来说,此解决方案也适用于Paypal的IPN模拟器。删除&#39;&#39;从给予模拟器的网址首次成功发布到我的监听页面。