我是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, '', '&'); // 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 访问, 图片、新闻、拼写和博客搜索结果,定价简单 基于使用情况的方案。该服务还提供资格 开发者对雅虎搜索广告的访问权限。