2

curlでリクエストを書こうとしています。2点間の距離を取得したい。したがって、文字列を作成するために、データベースからこれらのポイントのデータを取得しています。エコーすると、最終的な文字列は次のようになります。

http://maps.googleapis.com/maps/api/distancematrix/json?origins=40215+Düsseldorf+Königsallee 59&destinations=40215+Düsseldorf&sensor=false

httpの代わりにhttpsでも試してみましたが、結果は同じでした。

ご覧のとおり、完全に適切な JSON-Response が返されますが、後でこれを行うと、常にエラーが発生します。

public function request($signedUrl) {
        $ch = curl_init($signedUrl);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        $data = curl_exec($ch);
        curl_close($ch);
        $this->response = json_decode($data);
    }

これ$signedUrlは requestUrl です。

私がいるときに、私var_dump($data)が得るGoogleからのエラー

400. That’s an error.

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

応答を var_dump すると、null が返されます。

ここで何が問題になっている可能性があり、どうすれば修正できますか? 私もそれを読み込もうとしましたfile_get_contentsが、成功しませんでした

4

1 に答える 1

4

作品[テスト済み] 。URL がエンコードされていないため、不正なリクエストを受け取りました。

<?php
$urlx='http://maps.googleapis.com/maps/api/distancematrix/json?origins=40215+D%C3%BCsseldor%20%E2%80%8Bf+K%C3%B6nigsallee59&destinations=40215+D%C3%BCsseldorf&sensor=false';
$ch = curl_init($urlx);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);
var_dump(($data));
于 2013-09-24T13:28:26.207 に答える