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

WBOY
풀어 주다: 2016-06-23 14:39:23
원래의
1485명이 탐색했습니다.

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

好的。我自己看吧

楼主有结果吗?

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿