欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2024-01-23 23:38:16
...
如题,一提交即返回以下信息:
错误
您所请求的网址(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文档了。

好的。我自己看吧

楼主有结果吗?