我正在尝试让 cURL(或 get_file_contents)从以下 URL 获取内容:
http://localhost:8080/solr/select?q={!geofilt score=distance sfield=geo pt=20.570529,-100.408635 d=20}&sort=score asc&fq=restaurantes&defType=!edismax&wt=json&indent=true&start=0&rows=20&fl=*,score
我从这两种方法(cURL 和 get_file_contents)中得到的只是 HTTP 505 错误。但是,如果我将链接复制并粘贴到 Firefox 之类的浏览器,它就可以正常工作...
我尝试的最后一件事是强制 cURL 使用不同的 HTTP 版本,例如:
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
没有任何运气。
我的代码适用于其他 URL,比如这个:
http://localhost:8080/solr/select?q=restaurantes&defType=edismax&qf=category^20.0+name^10.0+keywords^10.0+address^2.0&wt=json&indent=true&start=0&rows=20&fl=*,score
明显的区别在于 {、=、}、! 等字符。在网址中。但是,为什么 Firefox 可以工作?