服务器没有给出卷曲代码的任何响应

时间:2013-09-27 20:57:46

标签: php 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);
    ?>

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

提前致谢

1 个答案:

答案 0 :(得分:1)

您的代码有三个问题:

  • 你正在通过卷曲传递一个字符串。这是不好的。您应该仔细准备要发送的结构化数据。

示例:

 $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。

  • 雅虎的宁静搜索api url正在转变为支持BOSS api。你的请求uri应该是这样的:

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

来自文档:

  

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