Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 验证HTTP Post_Php_.net_Curl_Libcurl_Soap Client - Fatal编程技术网

Php 验证HTTP 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

您好,我正试图通过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_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);