1

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

<?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);
    ?>

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

提前致谢

4

1 回答 1

1

您的代码存在三个问题:

  • 您正在传递一个字符串以通过 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 search api url 的变化有利于BOSS api。您的请求 uri 应如下所示:

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

从文档中:

BOSS API 是一项更新的服务,它提供对 Web、图像、新闻、拼写和博客搜索结果的 RESTful 访问,并具有基于使用情况的简单定价方案。该服务还为合格的开发人员提供对 Yahoo! 的访问权限。搜索广告。

于 2013-09-27T21:43:48.240 回答