簡體   English   中英

PHP卷曲不良請求400 - mapquest地理編碼

[英]PHP curl bad request 400 - mapquest geocoding

我的網址是:

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請求基本上返回相同的東西。 當我從本地機器上的終端運行cURL時,也會返回400。

如果我把URL放在我的瀏覽器中,我並沒有失望,它返回我正在尋找的200狀態代碼的數據。

瀏覽器獲取請求和cURL之間有什么不同?

像@Matt忍者和@chiliNut建議的那樣,我需要看看這兩個請求之間的區別。

唯一的區別是空間。 我嘗試運行urlencode() php函數以及rawurlencode() php函數,但都沒有影響結果。

這就是我現在使用的而不是url編碼:

$urlForGeocodeURLEncoded = str_replace(' ', '%20', $urlForGeocode);

在此輸入圖像描述

似乎是你設置變量$urlForGeocode的方式的問題..你使用'"嗎?

它應該是前者。

第二個請求失敗,因為有一個 (空格)URL字段中產生格式錯誤的請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM