首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单的cURL不返回任何东西

简单的cURL不返回任何东西
EN

Stack Overflow用户
提问于 2017-09-18 14:47:57
回答 2查看 4.1K关注 0票数 0

我试图在没有运气的情况下执行cURL。如果我访问网址:

http://webgis.dor.wa.gov/webapi/addressrates.aspx?output=xml&addr=416+Sid+Snyder+Ave+SW&city=Olympia&zip=98504

然后我可以看到一个XML文档。

但是,使用PHP5.6时,不会返回任何内容。特别是,我使用了以下代码:

代码语言:javascript
复制
<?php 

$ch = curl_init("http://webgis.dor.wa.gov/webapi/addressrates.aspx?output=xml&addr=416+Sid+Snyder+Ave+SW&city=Olympia&zip=98504");

  curl_setopt_array($ch,array(
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT => 10
  ));
 $result = curl_exec($ch);
 if(!$result)
{
    echo 'Curl error: ' . curl_error($ch);
}

 $info = curl_getinfo($ch);
echo "Info: ";
print_r($info);
echo "Result: ";
var_dump($result);

其结果是:

代码语言:javascript
复制
 Info: array(26) { 
["url"]=> string(110) "http://webgis.dor.wa.gov/webapi/addressrates.aspx?output=xml&addr=416+Sid+Snyder+Ave+SW&city=Olympia&zip=98504" ["content_type"]=> string(8) "text/xml" 
["http_code"]=> int(200) 
["header_size"]=> int(236) 
["request_size"]=> int(141) 
["filetime"]=> int(-1) 
["ssl_verify_result"]=> int(0) 
["redirect_count"]=> int(0) 
["total_time"]=> float(0.654618) 
["namelookup_time"]=> float(0.004215) 
["connect_time"]=> float(0.064022) 
["pretransfer_time"]=> float(0.064091) 
["size_upload"]=> float(0) 
["size_download"]=> float(369) 
["speed_download"]=> float(369) 
["speed_upload"]=> float(0) 
["download_content_length"]=> float(369) 
["upload_content_length"]=> float(-1) 
["starttransfer_time"]=> float(0.654568) 
["redirect_time"]=> float(0) 
["redirect_url"]=> string(0) "" 
["primary_ip"]=> string(14) "198.105.130.18" 
["certinfo"]=> array(0) { } 
["primary_port"]=> int(80) 
["local_ip"]=> string(14) "162.244.253.84"
 ["local_port"]=> int(54442) }

 Result: string(369) "" 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-18 14:51:52

就像这样,

代码语言:javascript
复制
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "http://webgis.dor.wa.gov/webapi/addressrates.aspx?output=xml&addr=416%20Sid%20Snyder%20Ave%20SW&city=Olympia&zip=98504",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "cache-control: no-cache",
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {

  echo "cURL Error #:" . $err;

} else {

  echo $response;

 // convert it to array if you want
 $xml = simplexml_load_string($response);
 $json = json_encode($xml);
 $arr = json_decode($json,true);
 print '<pre>';
 print_r($arr);
 print '</pre>';

}
票数 2
EN

Stack Overflow用户

发布于 2019-02-06 12:40:47

始终检查curl请求是否成功。别以为它成功了。

代码语言:javascript
复制
if(curl_exec($ch) === false)
{
    echo 'Curl error: ' . curl_error($ch);
}
else
{
    echo 'Operation completed without any errors';
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46282235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档