服务器未对 curl 代码给出任何响应


server not giving any response for curl code

我是curl的新手,并制作了一个将使用Yahoo搜索引擎进行搜索的程序这是我的代码:-

<?php
        $handle=curl_init();
        curl_setopt($handle,CURLOPT_URL,"http://search.yahooapis.com/ImageSearchServ/V1/imageSearch");
        curl_setopt($handle,CURLOPT_POST,true);
        //curl_setopt($handle,CURLOPT_POSTFEILDS,"appid=$appID&query='water bear&results=5'");
        curl_setopt($handle,CURLOPT_RETURNTRANSFER,true);
        $response=curl_exec($handle);
        curl_close($handle);
        print_r($response);
    ?>

当我运行此代码时,浏览器不会显示任何错误消息或任何响应,它只是像无限循环一样向服务器请求。你能帮帮我吗

提前致谢

您的代码存在三个问题:

  • 您正在传递一个字符串以通过 curl 发布。这很糟糕。您应该仔细准备要发送的结构化数据。

例:

 $data = array('appid'=>'12345',
               'query'=>'water bear',
               'results'=>5);
 $data = http_build_query($data, '', '&amp;'); // use native helper methods
 curl_setopt($handle,CURLOPT_POSTFIELDS,$data);
  • 您的代码中有一个拼写错误:CURLOPT_POST(FEI)LDS 应该是 CURLOPT_POST(FIE)LDS。

  • 雅虎的 restful 搜索 API URL 正在发生变化,转而支持 BOSS API。您的请求 uri 应如下所示:

http://yboss.yahooapis.com/ysearch/{service,*}?q={keywords}

从文档中:

BOSS API 是一项更新的服务,提供对 Web 的 RESTful 访问, 图片、新闻、拼写和博客搜索结果,定价简单 基于使用情况的方案。该服务还提供资格 开发者对雅虎搜索广告的访问权限。