0

我应该如何配置 cURL 以从 yahoo maps api 检索数据?

这是当前代码

curl_setopt($ch, CURLOPT_TIMEOUT, 5000);
curl_setopt($ch, CURLOPT_URL, $geocodeurl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);

它返回一个 400 - Bad request HTML 文件。我已经检查过了$geocodeurl,它是一个有效的 XML 文件,所以我认为问题一定是 cURL 选项?


$geocodeurl 是

 http://where.yahooapis.com/geocode?appid=** My App ID **&q=Battle%20Creek,MI&gflags=R
4

2 回答 2

1

我编写了一个简单的类包装器来获取一个基本地址作为 php 对象,这可能会帮助您完成工作!我还添加了一个谷歌地理编码包装器。

要回答您的问题,您发布的网址一切正常,但是正如您在回复中提到的那样,您应该对参数进行 urlencode

$query = $this->url."?appid=".$this->appid."&flags=".$this->format;
$query .= "&location=".urlencode($address);

这是我的包装类的链接

https://github.com/mrpollo/Geocoding-API

于 2011-05-12T22:10:10.697 回答
0

好的,像往常一样,我错误地识别了问题。cURL很好,但是q=变量没有正确地通过任何urlencode函数。

在我的浏览器中工作,因为 Firefox 好心地将%20. 与cURL你需要更加小心。. . .

于 2011-05-12T21:43:35.787 回答