Home >Backend Development >PHP Tutorial >PHP用curl函数POST请求到ASP页面提示无效请求

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

WBOY
WBOYOriginal
2016-06-23 14:39:231508browse

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

好的。我自己看吧

楼主有结果吗?

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn