0

我已经为此工作了好几天,但我似乎无法让它工作。有人看到下面的代码有问题吗?

结果什么都没有。我没有得到任何服务的回应。我已经确认用 .Net 编写的 web 服务可以接受和 xml 字符串,我已经匹配了他们的架构等。但我没有得到任何回复。

我还应该提到,我是使用 php 使用 Web 服务的新手,但在 .Net 中这样做过无数次。

此外,有没有办法测试 webservice .asmx 以查看 php 中的任何类型的错误输出,只是为了看看它是否在服务器端工作?

<?php
$url = 'https://someurl/someservice.asmx';
$xml = '<?xml version="1.0" encoding="utf-8" ?>
    <query>
        <version>1.0</version>
        <login>userName</login>
        <password>password</password>
        <keyword>cancer</keyword>
    </query>'; 

$c = curl_init(); 

curl_setopt($c, CURLOPT_URL, $url); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);  
curl_setopt($c, CURLOPT_HEADER, true); 
curl_setopt($c, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded", "Content-length: ".strlen($xml))); 
curl_setopt($c, CURLOPT_POST, true); 
curl_setopt($c, CURLOPT_POSTFIELDS, 'xmlInput='.urlencode($xml)); 
curl_setopt($c, CURLOPT_TIMEOUT, (int)30);  

$xmlResponse = curl_exec($c); 
curl_close ($c); 
echo 'Output :: '.$xmlResponse;
?>
4

2 回答 2

0

尝试不

<?xml version="1.0" encoding="utf-8" ?>

或写

<?xml version=\"1.0\" encoding=\"utf-8\" ?>
于 2012-04-06T13:18:10.960 回答
0

您是否尝试将以下内容添加到您的请求中?

curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c, CURLOPT_SSL_VERIFYHOST, false);
于 2012-04-07T06:48:42.433 回答