Php 验证HTTP Post
您好,我正试图通过CURL发送POST请求,但它抛出了一个错误,上面写着Php 验证HTTP Post,php,.net,curl,libcurl,soap-client,Php,.net,Curl,Libcurl,Soap Client,您好,我正试图通过CURL发送POST请求,但它抛出了一个错误,上面写着 “未能连接到qaservices.carrental.com:443;无错误” 用户名和密码已经包含在xml文件的soap头中 <?php $filename = 'c:/v.xml'; $data = file_get_contents($filename); $url = 'https://qaservices.carrental.com/wsbang/HTTPSOAPRouter/ws9071'; $soap
“未能连接到qaservices.carrental.com:443;无错误” 用户名和密码已经包含在xml文件的soap头中
<?php
$filename = 'c:/v.xml';
$data = file_get_contents($filename);
$url = 'https://qaservices.carrental.com/wsbang/HTTPSOAPRouter/ws9071';
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, $url );
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_TIMEOUT, 10);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_POST, true );
curl_setopt($soap_do, CURLOPT_HEADER, 0 );
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($soap_do);
$err = curl_error($soap_do);
if ( curl_errno($soap_do) )
{
$result = 'ERROR -> ' . curl_errno($soap_do) . ': ' . curl_error($soap_do);
}
else
{
$returnCode = (int)curl_getinfo($soap_do, CURLINFO_HTTP_CODE);
switch($returnCode)
{
case 200:
break;
default:
$result = 'HTTP ERROR -> ' . $returnCode;
break;
}
}
curl_close($ch);
echo $result;
?>
我认为它必须在设置代理凭据方面做些什么。有人能给我提供正确的路径吗?SSL证书在主机和节点上都有效吗?如果没有,则添加以下选项。这将绕过SSL验证并允许您连接
curl_setopt ($soap_do, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($soap_do, CURLOPT_SSL_VERIFYPEER, 0);
windows服务器拒绝了来自curl/php的internet连接请求。如果您的电脑连接到windows网络,某些非microsoft应用程序(如fiddler、esclipse、maven)将无法连接到internet。您需要安装cntlm代理,它将为您的请求添加一个头,以便它可以连接到internet。 我已将cntlm配置为查看端口3127 在上面的代码中我添加了 $proxy='127.0.0.1:3127'; curl_setopt($soap_do,CURLOPT_PROXY,$PROXY)
如果有人在windows网络上使用visual php连接到web时遇到问题,希望此帮助粘贴
print\r(curl\u getinfo($soap\u do))的输出代码>数组([url]=>[content\u type]=>[http\u code]=>0[标题大小]=>0[请求大小]=>0[文件时间]=>1[ssl\u验证结果]=>0[重定向\u计数]=>0[总时间]=>1.498[名称查找时间]=>0.499[连接时间]=>0[预传输时间]=>0[大小上传]=>0[大小下载]=>0[速度下载]=>0[速度上传]=>0[下载内容长度]=>-1[上传内容长度]=>-1[开始传输时间]=>0[重定向时间]=>0[认证信息]=>数组()[主ip]=>170.225.0.83[主ip]=>443[本地ip]=>[本地端口]=>0[重定向url]
curl_setopt ($soap_do, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt ($soap_do, CURLOPT_SSL_VERIFYPEER, 0);