【发布时间】:2015-01-23 08:53:33
【问题描述】:
简介
我会给你一个例子,这样我的问题可能会更好理解。我在编程方面不需要“帮助”,只需要关于这个主题的信息!
示例
我为特定职位尝试了API for getting weather information 并偶然发现了一个问题。我建立了我的 url 来请求这样的数据:
$params['q'] = $latitude .','. $longitude; // 48.14,11.58
$params['format'] = $format; //json
$params['num_of_days'] = $numOfDays; //1
$params['key'] = self::APIKEY;
$url = 'http://api.worldweatheronline.com/free/v1/weather.ashx'
$url .= '?'. http_build_query($params);
最终到达网址如下所示
但是,当使用 cURL 请求此 URL 的数据时,我收到未提供 api-key 的错误。我发现,问题在于 URL 中使用了 & 符号。当我像这样使用http_build_query 方法时:
$url .= '?'. http_build_query($params, null, '&');
问题
现在我想问的是,这是否是服务器的预期行为。我从其他几个 API(Facebook、Foursquare 等)了解到,它们在 URL 中接受 & 而不是 & 并按预期工作。
有标准吗?服务器应该能够接受& 还是接受它是“错误的”并且应该只接受&?谢谢!
【问题讨论】:
-
不知何故我无法编辑我的帖子。第一个 URL 应如下所示:
http://api.worldweatheronline.com/free/v1/weather.ashx?q=48.13743%2C11.57549&format=json&num_of_days=1&key=APIKEY。参数分隔符应该是&而不是&。希望能解决问题! -
这个问题无法回答清楚,因为您是在征求意见。不,在我看来,服务器一定不能理解任何由调用链早期解析错误导致的 URL 格式。
-
我认为可能有一个像这样的标准:faqs.org/rfcs/rfc1738.html 告诉我们
&是否应该被服务器接受。但是,如果我对您的理解正确,您会说,在您看来,服务器不应该能够接受&,因为正确的参数分隔符是&? - 支持分享您的意见
标签: php http server server-configuration