Heim > Backend-Entwicklung > PHP-Tutorial > PHP使用cURL调用WebService的问题

PHP使用cURL调用WebService的问题

WBOY
Freigeben: 2016-06-06 20:27:11
Original
1402 Leute haben es durchsucht

我想用PHP的cURL来访问WeatherWS
官网给出的请求示例:

<code>POST /WebServices/WeatherWS.asmx/getWeather HTTP/1.1
Host: www.webxml.com.cn
Content-Type: application/x-www-form-urlencoded
Content-Length: length

theCityCode=string&theUserID=string</code>
Nach dem Login kopieren
Nach dem Login kopieren

我写的代码:

<code>$data = 'theCityCode=广州&theUserID=""';

$curlObj = curl_init();
curl_setopt($curlObj,CURLOPT_URL,'http://www.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather');
curl_setopt($curlObj,CURLOPT_HEADER,0);
curl_setopt($curlObj,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curlObj,CURLOPT_POST,1);
curl_setopt($curlObj,CURLOPT_POSTFIELDS,$data);

curl_setopt($curlObj,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8","Content-length:".strlen($data)));
$rtn = curl_exec($curlObj);

if(!curl_errno($curlObj)){
    echo $rtn;
}else{
    echo 'Curl error:'.curl_error($curlObj);
}
curl_close($curlObj);</code>
Nach dem Login kopieren
Nach dem Login kopieren

说是免费用户的话theUserID留空,可是执行的结构就是

<code>发现错误:用户验证失败。http://www.webxml.com.cn/</code>
Nach dem Login kopieren
Nach dem Login kopieren

如果不加入theUserID又会提示:

<code>缺少参数: theUserID。</code>
Nach dem Login kopieren
Nach dem Login kopieren

求解??

回复内容:

我想用PHP的cURL来访问WeatherWS
官网给出的请求示例:

<code>POST /WebServices/WeatherWS.asmx/getWeather HTTP/1.1
Host: www.webxml.com.cn
Content-Type: application/x-www-form-urlencoded
Content-Length: length

theCityCode=string&theUserID=string</code>
Nach dem Login kopieren
Nach dem Login kopieren

我写的代码:

<code>$data = 'theCityCode=广州&theUserID=""';

$curlObj = curl_init();
curl_setopt($curlObj,CURLOPT_URL,'http://www.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather');
curl_setopt($curlObj,CURLOPT_HEADER,0);
curl_setopt($curlObj,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curlObj,CURLOPT_POST,1);
curl_setopt($curlObj,CURLOPT_POSTFIELDS,$data);

curl_setopt($curlObj,CURLOPT_HTTPHEADER,array("application/x-www-form-urlencoded;charset=utf-8","Content-length:".strlen($data)));
$rtn = curl_exec($curlObj);

if(!curl_errno($curlObj)){
    echo $rtn;
}else{
    echo 'Curl error:'.curl_error($curlObj);
}
curl_close($curlObj);</code>
Nach dem Login kopieren
Nach dem Login kopieren

说是免费用户的话theUserID留空,可是执行的结构就是

<code>发现错误:用户验证失败。http://www.webxml.com.cn/</code>
Nach dem Login kopieren
Nach dem Login kopieren

如果不加入theUserID又会提示:

<code>缺少参数: theUserID。</code>
Nach dem Login kopieren
Nach dem Login kopieren

求解??

自己看下吧[超时什么的错误判断自己处理],真不知道怎么说你,不看文档还要玩高难度的。

网上大把简单的接口不用。
截图:
PHP使用cURL调用WebService的问题

<code><?php $post='theCityCode='.urlencode('广州').'&theUserID=';
// 初始化
$curl = curl_init('http://www.webxml.com.cn/WebServices/WeatherWS.asmx/getWeather');
$header = array();
$header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
$header[] = 'Accept-Encoding: gzip, deflate';
$header[] = 'Accept-Language: zh-CN,zh;q=0.8';
$header[] = 'Cache-Control: max-age=0';
$header[] = 'Content-Length: '.strlen($post);
$header[] = 'Content-Type: application/x-www-form-urlencoded';
$header[] = 'Host: www.webxml.com.cn';
$header[] = 'Origin: http://www.webxml.com.cn';
$header[] = 'Proxy-Connection: keep-alive';
$header[] = 'Referer: http://www.webxml.com.cn/WebServices/WeatherWS.asmx?op=getWeather';
$header[] = 'Upgrade-Insecure-Requests: 1';
$header[] = 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36';
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
// 不输出header头信息
curl_setopt($curl, CURLOPT_HEADER, 0);
// 保存到字符串而不是输出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// post数据
curl_setopt($curl, CURLOPT_POST, 1);
// 请求数据
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
// 是否抓取跳转后的页面
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$response = curl_exec($curl);
curl_close($curl);
$xml = simplexml_load_string($response);

print_r($xml);</code></code>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage