首页 >后端开发 >php教程 >PHP用curl函数POST请求到ASP页面提示无效请求

PHP用curl函数POST请求到ASP页面提示无效请求

WBOY
WBOY原创
2016-06-23 14:39:231501浏览

如题,一提交即返回以下信息:
错误
您所请求的网址(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文档了。

好的。我自己看吧

楼主有结果吗?

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn