-1
 <?php

この部分では、ジオコードを逆にするために緯度と経度を指定します。

 $ch = curl_init("http://maps.google.com/maps/api/geocode/json?latlng=39.784268,-98.393555&sensor=false");

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
 $return = curl_exec($ch);
 curl_close($ch);
 $geoOutput = json_decode($return, true);

 $data = current($geoOutput);
 echo $data; 

その後、コンテンツをサーブレットに渡したいのですが、たとえば、通りと郵便番号を埋め込みました。生成されるURLは次のようになりますが、URLを実行しても、curlでは何も発生しません。ただし、ブラウザにコードをコピーして貼り付けると成功します。

  $urlse="http://136.145.116.30:8080/AccidentDetailsInserter?latitude=18.209&longitude=-67.139&frontal_damage=1&left_damage=1&right_damage=0&back_damage=0&smoke_detected=0&flipped=0&maxforce=7&roll=0&pitch=0&yaw=0&device_id=47&street=Calle Caobos&city= Mayagüez&state=PR&zip= 00680";

echo $urlse;

     $ch = curl_init();
      $timeout = 5;
      curl_setopt($ch,CURLOPT_URL,$urlse);
      curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
      curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
      $data = curl_exec($ch);
      curl_close($ch);
      echo $data;

ここでは出力は空白です

    ?>

ポートを8080に指定するように書き込もうとしましたが、何もしませんでした。

4

1 に答える 1

0

2番目のURLには、スペースと、urlencodingする必要のあるその他のエスケープされていない文字が含まれています。ブラウザに貼り付けると、ブラウザが修正します。CURLはそうではありません。

street=Calle Caobosまたは他のそのようなパラメータの代わりに、を送信する必要がありますstreet=Calle%20Caobosurlencode()構築しているすべてのパラメーターで使用するだけです。

編集:ここに欠けているものがいくつかありました、ここにいくつかの動作するコードがあります:

$urlse="http://136.145.116.30/AccidentDetailsInserter?latitude=18.209&longitude=-67.139&frontal_damage=1&left_damage=1&right_damage=0&back_damage=0&smoke_detected=0&flipped=0&maxforce=7&roll=0&pitch=1&yaw=0&device_id=47&street=CalleCaobos&city=SanJuan&state=PR&zip=00926";
echo $urlse;

     $ch = curl_init();
      $timeout = 10;
      curl_setopt($ch,CURLOPT_URL,$urlse);
      curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
      curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
      curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
      curl_setopt($ch, CURLOPT_PORT, 8080);
      $data = curl_exec($ch);
      curl_close($ch);
      echo $data;
于 2012-04-29T08:42:38.480 に答える