使用cURL和PHP的Soap请求
我试图在PHP中通过Curl发送SOAP帖子,但我总是遇到无法连接到主机的问题。 但当我尝试在Hull这样的基于web的客户端中使用相同的URL时,a得到了正确的响应:使用cURL和PHP的Soap请求,php,api,soap,curl,wsdl,Php,Api,Soap,Curl,Wsdl,我试图在PHP中通过Curl发送SOAP帖子,但我总是遇到无法连接到主机的问题。 但当我尝试在Hull这样的基于web的客户端中使用相同的URL时,a得到了正确的响应: 投掷测试: 我的代码: $url=”https://gateway.monster.com/bgwBroker"; $soapMessage=''。 ''. ''. ''. “PresenceMedia SARL Jobs”。 “2004-06-09T14:41:44Z”。 ''. ''. ''. ''. “xrtpjobs
- 投掷测试:
- 我的代码:
$url=”https://gateway.monster.com/bgwBroker"; $soapMessage=''。 ''. ''. ''. “PresenceMedia SARL Jobs”。 “2004-06-09T14:41:44Z”。 ''. ''. ''. ''. “xrtpjobsx01”。 “rtp987654”。 ''. ''. ''. ''. ''. ''. “xrtpjobsx01”。 ''. ''. ''. “JobTypeFullTime”。 ''. “拉巴特海岸”。 “纽约”。 “我们”。 '11220'. ''. ''. ''. ''. ''. ''. “伦敦东部”。 “伦敦”。 “英国”。 ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''. ''; $headers=数组( “内容类型:text/xml;字符集=\“utf-8\”, “接受:文本/xml”, “缓存控制:无缓存”, “Pragma:无缓存”, “SOAPAction:\“运行”, “内容长度:”.strlen($soapMessage), ); $soapUser=“xrtpjobsx01”; $soapPassword=“rtp987654”; $soap\u do=curl\u init(); curl_setopt($soap_do,CURLOPT_URL,$URL); curl_setopt($soap_do,CURLOPT_PORT,8443); curl_setopt($soap_do,CURLOPT_USERPWD,$soapUser.:“$soapPassword); curl_setopt($soap_do,CURLOPT_RETURNTRANSFER,true); curl_setopt($soap_do,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($soap_do,CURLOPT_SSL_VERIFYHOST,false); curl_setopt($soap_do,CURLOPT_POST,true); curl_setopt($soap_do,CURLOPT_TIMEOUT,9000); curl_setopt($soap_do,CURLOPT_POSTFIELDS,$soapMessage); curl_setopt($soap_do,CURLOPT_HTTPHEADER,$headers); $result=curl\u exec($soap\u do); $err=curl\u error($soap\u do); 回声“结果:”$结果; 回显“
错误:”$犯错误 回声“; var_dump(curl_getinfo($soap_do)); 回声“; ?>
什么是$result打印?嗨,fabio,打印结果是:无法连接到主机!!我已经使用了SoapClient,但仍在生成错误。当我尝试使用web浏览器访问我的Uri时,我得到了错误“此网页不可用”,当我尝试使用Curl或SoapClient发布数据时也是如此,当我使用基于web的客户端“Ex:Hurt”时,一切都很完美!!通过PHPSOAPClient发送所需的soap消息并不总是那么容易。由于php以自己的方式生成soap消息。您可能需要(Soap客户机的doRequest方法)[来完成此任务。
$url = "https://gateway.monster.com/bgwBroker";
$soapMessage = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">' .
'<SOAP-ENV:Header>'.
'<mh:MonsterHeader xmlns:mh="http://schemas.monster.com/MonsterHeader">'.
'<mh:MessageData>'.
'<mh:MessageId>PresenceMedia SARL Jobs</mh:MessageId>'.
'<mh:Timestamp>2004-06-09T14:41:44Z</mh:Timestamp>'.
'</mh:MessageData>'.
'</mh:MonsterHeader>'.
'<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">'.
'<wsse:UsernameToken>'.
'<wsse:Username>xrtpjobsx01</wsse:Username>'.
'<wsse:Password>rtp987654</wsse:Password>'.
'</wsse:UsernameToken>'.
'</wsse:Security>'.
'</SOAP-ENV:Header>'.
'<SOAP-ENV:Body>'.
'<Job jobRefCode="Job - minimal fields" jobAction="addOrUpdate" jobComplete="true" xmlns="http://schemas.monster.com/Monster" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.monster.com/Monster http://schemas.monster.com/Current/xsd/Monster.xsd">'.
'<RecruiterReference>'.
'<UserName>xrtpjobsx01</UserName>'.
'</RecruiterReference>'.
'<JobInformation>'.
'<JobTitle><![CDATA[PresenceMedia SARL its a simple test from morocco blablablablablablablablablablablabla]]></JobTitle>'.
'<JobStatus monsterId="4">JobTypeFullTime</JobStatus>'.
'<PhysicalAddress>'.
'<City>Rabat Shore</City>'.
'<State>NY</State>'.
'<CountryCode>US</CountryCode>'.
'<PostalCode>11220</PostalCode>'.
'</PhysicalAddress>'.
'<JobBody><![CDATA[PresenceMedia SARL Body blablabla blablabla blablabla blablabla blablabla blablabla blablabla]]></JobBody>'.
'</JobInformation>'.
'<JobPostings>'.
'<JobPosting>'.
'<Location>'.
'<City>London East</City>'.
'<State>London</State>'.
'<CountryCode>UK</CountryCode>'.
'</Location>'.
'<JobCategory monsterId="47" />'.
'<JobOccupations>'.
'<JobOccupation monsterId="11909" />'.
'</JobOccupations>'.
'<BoardName monsterId="1" />'.
'<Industries>'.
'<Industry>'.
'<IndustryName monsterId="1" />'.
'</Industry>'.
'</Industries>'.
'</JobPosting>'.
'</JobPostings>'.
'</Job>'.
'</SOAP-ENV:Body>'.
'</SOAP-ENV:Envelope>';
$headers = array(
"Content-type: text/xml;charset=\"utf-8\"",
"Accept: text/xml",
"Cache-Control: no-cache",
"Pragma: no-cache",
"SOAPAction: \"run\"",
"Content-length: ".strlen($soapMessage),
);
$soapUser = "xrtpjobsx01";
$soapPassword = "rtp987654";
$soap_do = curl_init();
curl_setopt($soap_do, CURLOPT_URL, $url);
curl_setopt($soap_do, CURLOPT_PORT, 8443);
curl_setopt($soap_do, CURLOPT_USERPWD, $soapUser.":".$soapPassword);
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true );
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($soap_do, CURLOPT_POST, true );
curl_setopt($soap_do,CURLOPT_TIMEOUT,9000);
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $soapMessage);
curl_setopt($soap_do, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($soap_do);
$err = curl_error($soap_do);
echo "Result:" . $result;
echo "<br>Error:" . $err ;
echo "<b><pre>";
var_dump(curl_getinfo($soap_do));
echo "</pre>";
?>
$client = new SoapClient($Url, $options);
$data = $client->functionName($params);