2017-11-14 5 views
1

私は、CURLとGoogle Maps APIを使用して住所の座標を返す関数を持っています。次のようにGoogleマップPHP CURLの問題 "お客様のクライアントは不正な形式または違法な形式のリクエストを発行しました。

コードは次のとおりです。コードは私のために正常に動作

function get_coordinates($address_string) { 

    $address = urlencode($address_string); 
    $url = "https://maps.googleapis.com/maps/api/geocode/json?address=" . $address . "&key=" . $api_key; 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_PROXYPORT, 3128); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    $response = curl_exec($ch); 
    curl_close($ch); 
    $response_a = json_decode($response); 
    $status = $response_a->status; 

    return $response; 

} 

と私は上でそれを使用するWebサーバの99% - が、サーバの約1%のためにGoogleがエラーメッセージを返します。

Your client has issued a malformed or illegal request. That’s all we know. 

Google APIキーが正しいことを確認しましたが、PHP CURLが有効になっており、PHPバージョンが現在処理しているPHPバージョンと一致しています。

誰かがこのメッセージを返す原因となる可能性のある他の事柄について考えることはできますか?

答えて

2

そのため、$ address変数のアドレスに空白が含まれているため、str_replaceを使用して空白文字を+記号に置き換えてください。

これはうまくいく、私は同じ問題に直面していたこの方法で修正されました。

+0

これも私の問題を修正しました。 私の場合は起源がハードコードされていて、都市と国にはまだスペースがあります。 私はブラウザで同じ間隔の文字列を直接使用していましたが、うまくいきました。 – Shaakir

関連する問題