INTRO
我会给你一个例子,这样我的问题可能会更好理解。我在编程方面不需要“帮助”,只需要关于这个主题的信息!
示例
我尝试了一个用于获取特定位置的天气信息的 API,但偶然发现了一个问题。我建立了我的 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);
最终 URL 如下所示
但是,当使用 cURL 请求此 URL 的数据时,我收到未提供 api-key 的错误。正如我发现的那样,问题出&
在 URL 中使用了符号。当我使用这样的http_build_query
方法时:
$url .= '?'. http_build_query($params, null, '&');
问题
现在我想问的是,这是否是服务器的预期行为。我从其他几个 API(Facebook、Foursquare 等)知道他们接受&
而不是&
在 URL 中接受并按预期工作。
有标准吗?服务器应该能够接受&
还是接受它是“错误的”并且应该只&
被接受?谢谢!