我的網址是:PHP捲曲的錯誤請求400 - Mapquest服務地理編碼
http://www.mapquestapi.com/geocoding/v1/batch?key=dNBvDLtTx85L3akdg8vBoHQXrWpDJSEI&location=HEBRON,KY,US&location=CINCINNATI,KY,US&location=CINCINNATI,KY,US&location=BEDFORD PARK,IL,US&location=BEDFORD PARK,IL,US&location=HODGKINS,IL,US&location=HODGKINS,IL,US&location=HODGKINS,IL,US&location=BALDWIN PARK,CA,US&location=BALDWIN PARK,CA,US&location=BALDWIN PARK,CA,US&location=,,US
很長,但它應該是符合https://www.mapquestapi.com/geocoding/
當我運行下面的PHP代碼的奧祕展開:
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_URL, $urlForGeocode);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, TRUE);
$return = curl_exec ($ch);
curl_close ($ch);
echo($return);
$output = shell_exec('curl ' . $urlForGeocode);
echo($output);
變量$urlEncode
保存上面url的值。第一輸出是:
<html><body><b>Http/1.1 Bad Request</b></body> </html>
第二個請求的輸出是:
{
"info": {
"statuscode": 400,
"copyright": {
"text": "\u00A9 2016 MapQuest, Inc.",
"imageUrl": "http://api.mqcdn.com/res/mqlogo.gif",
"imageAltText": "\u00A9 2016 MapQuest, Inc."
},
"messages": ["no 'json' parameter found"]
},
"options": {
"maxResults": -1,
"thumbMaps": true,
"ignoreLatLngInput": false
},
"results": [{
"providedLocation": {},
"locations": []
}]
}
這兩個不同的捲曲請求返回基本上是相同的事情。當我從本地機器的終端運行cURL時,400也會返回。
如果我把URL放在瀏覽器中,我不會失望,它會返回我正在查找的數據和200狀態碼。
瀏覽器獲取請求和cURL有什麼不同?
試着加上'curl_setopt($ CH,CURLOPT_HTTPHEADER,陣列( '接受:應用/ JSON'));'在Chrome瀏覽器中,打開開發工具>網絡,找到請求並按副本作爲捲曲,您可以看到它用來發出請求的所有設置,以便您可以進行比較。 –
您是否嘗試過編碼url,即將空格變成%20?此外,爲了直接回答關於curl請求與瀏覽器請求不同的內容,是用戶代理。你有沒有試過讓你的瀏覽器用戶代理捲曲? – chiliNUT
你們倆都是對的......非常感謝副本的捲曲。我做到了,看着網址,唯一不同的是空間。我不相信這只是空間,所以我沒有嘗試蝙蝠的權利。好的。有趣的是,我嘗試urlencode()和rawurlencode()都沒有結果。 – stackOverFlew