PHP用curl函数POST请求到ASP页面提示无效请求
错误
您所请求的网址(URL)无法获取
--------------------------------------------------------------------------------
当尝试进行以下请求时:
POST /card/pay_card.aspx HTTP/1.0
Host: pay.m3guo.com
X-Real-IP: 120.31.66.99
X-Forwarded-For: 120.31.66.99
Connection: close
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; .NET4.0C; .NET4.0E; VENUS_IE_ADDON-0.2.8.28; SE 2.X MetaSr 1.0)
Accept: */*
Referer: http://pay.m3guo.com/card/pay_card.aspx
Cookie: ASP.NET_SessionId=j3if2045wkqnvnm010lbpe55
Content-Length: 1197
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue
发生了下列的错误:
Invalid Request
无效的请求
Some aspect of the HTTP Request is invalid. Possible problems:
HTTP 请求的某些方面是无效的。可能是下列问题:
Missing or unknown request method
缺少请求方式或未知的请求方式
Missing URL
缺少网址
Missing HTTP Identifier (HTTP/1.0)
缺少 HTTP 标识(HTTP/1.0)
Request is too large
请求命令过长
Content-Length missing for POST or PUT requests
POST 或 PUT 请求缺少内容长度
Illegal character in hostname; underscores are not allowed
主机名称中包含不合法的字符;下划线是不允许的。
本缓存服务器管理员:webmaster@fastcdn.com.
高手请赐教,注意:PHP页面是自己写的一个页面,用POST方式提交到‘人家的网页’里去的,请问是不是‘人家’做了限制。。。
回复讨论(解决方案)
现在别人的网页做个正常的POST 然后抓包跟现在的校对下 你就知道什么地方是需要修改的。
嗯,我用的是HTTPANALYZERSTD抓包软件获取的数据,我就是根据这份数据来合成的post请求数据提交的,不知道在哪里出错了!晕死了 现在别人的网页做个正常的POST 然后抓包跟现在的校对下 你就知道什么地方是需要修改的。
嗯,我用的是HTTPANALYZERSTD抓包软件获取的数据,我就是根据这份数据来合成的post请求数据提交的,不知道在哪里出错了!晕死了引用 2 楼 phpnewnew 的回复:
现在别人的网页做个正常的POST 然后抓包跟现在的校对下 你就知道什么地方是需要修改的。
那么你是不是核对了所有的参数呢?POST 的头 POST 的内容都完全符合一致?
引用 3 楼 xiaoyao_studio 的回复:
嗯,我用的是HTTPANALYZERSTD抓包软件获取的数据,我就是根据这份数据来合成的post请求数据提交的,不知道在哪里出错了!晕死了引用 2 楼 phpnewnew 的回复:
现在别人的网页做个正常的POST 然后抓包跟现在的校对下 你就知道什么地方是需要修改的。
那么你是不是核对了所有的参数呢?POST 的头 POST……
PHP中的curl方法除了可以设置:网址、POST参数和值、cookie、User-Agent、Referer这几个之外,其他的herder内容怎么用curl设置?
引用 4 楼 phpnewnew 的回复:
引用 3 楼 xiaoyao_studio 的回复:
嗯,我用的是HTTPANALYZERSTD抓包软件获取的数据,我就是根据这份数据来合成的post请求数据提交的,不知道在哪里出错了!晕死了引用 2 楼 phpnewnew 的回复:
现在别人的网页做个正常的POST 然后抓包跟现在的校对下 你就知道什么地方是需要修改的。
那么你是……
一般判断也就是这几样东西了。你的curl cookie 设置正确了吗?还有post的内容呢.
引用 5 楼 xiaoyao_studio 的回复:
引用 4 楼 phpnewnew 的回复:
引用 3 楼 xiaoyao_studio 的回复:
嗯,我用的是HTTPANALYZERSTD抓包软件获取的数据,我就是根据这份数据来合成的post请求数据提交的,不知道在哪里出错了!晕死了引用 2 楼 phpnewnew 的回复:
现在别人的网页做个正常的POST 然后抓包跟现在的……
嗯,不过该匹配的东西我都对照过一遍了,是绝对一致的,如果用curl设置HTTP的协议 是怎么设置的?
要设置成HTTP/1.1
我以前模拟过一些。当然是开发桌面程序的时候 发现 HTTP/1.1 和 HTTP/1.0 并不会有问题。
这两种协议有调用上有什么根本的区别吗?HTTP协议更新到1.1都改了什么东西?
我以前模拟过一些。当然是开发桌面程序的时候 发现 HTTP/1.1 和 HTTP/1.0 并不会有问题。
这两种协议有调用上有什么根本的区别吗?HTTP协议更新到1.1都改了什么东西?
引用 8 楼 phpnewnew 的回复:
我以前模拟过一些。当然是开发桌面程序的时候 发现 HTTP/1.1 和 HTTP/1.0 并不会有问题。
这两种协议有调用上有什么根本的区别吗?HTTP协议更新到1.1都改了什么东西?
这个你只能去看官方RFC文档了。
引用 10 楼 xiaoyao_studio 的回复:
引用 8 楼 phpnewnew 的回复:
我以前模拟过一些。当然是开发桌面程序的时候 发现 HTTP/1.1 和 HTTP/1.0 并不会有问题。
这两种协议有调用上有什么根本的区别吗?HTTP协议更新到1.1都改了什么东西?
这个你只能去看官方RFC文档了。
好的。我自己看吧
楼主有结果吗?