如何获得http请求的响应

时间:2018-03-30 10:22:40

标签: php xml google-custom-search

enter image description here我正在尝试获取某些标记值,但它显示出一些错误。 以下是代码,请提出一些解决方案。

这是我用于httpGet请求的方法。

function httpGet($result15)
{
$ch = curl_init();  

curl_setopt($ch,CURLOPT_URL,$result15);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

$output=curl_exec($ch);

curl_close($ch);

return $output;
}



$result15= httpGet("https://www.googleapis.com/customsearch/v1?key=API_KEY&cx=003255331468891742030:7yxai5xqwer&q=cancer&num=1&alt=atom");//new cse

echo $result15;
$xml = new DOMDocument();
$xml->loadXML($result15);
foreach( $xml->entry as $entry )
{
echo "URL=".(string)$entry->id.PHP_EOL;
echo "Summary=".(string)$entry->summary.PHP_EOL;
//echo "size=".(string)$enery->xpath("descendant::newznab:attr[@name='size']/@value")[0].PHP_EOL;
//echo "usenetdate=".(string)$channel->xpath("descendant::newznab:attr[@name='usenetdate']/@value")[0].PHP_EOL;
}

1 个答案:

答案 0 :(得分:1)

您可能会发现curl请求失败。你需要做几件事......

function httpGet($result15)
{
    $ch = curl_init();  
    curl_setopt($ch,CURLOPT_URL,$result15);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Add this
    $output=curl_exec($ch);
    // If this fails, output error.
    if ($output === FALSE) {
        echo curl_error($ch);
        // Not sure what you want to do, but 'exit' will work for now
        exit();
    }
    curl_close($ch);
    return $output;
}

如果curl请求失败,这将显示错误。您将需要决定如何应对此问题。您可以返回false,然后在您的代码中进一步向下,在尝试将其作为XML加载之前检查它。上面的代码只是在错误时停止。

你的下一段代码似乎混合了SimpleXML和DOMDocument,如果文档结构相当简单,你可以使用SimpleXML ......

$xml = simplexml_load_string($result15);
foreach( $xml->entry as $entry )
{