2
HttpUrlConnectionを使用してクラスを実装し、GoogleのジオコーディングAPIからデータを取得しました。私はAndroid上でこのコードを使用していた場合、それが正常に動作します。しかし、すぐに、私は別の「普通の」Javaプログラムでこのコードを使用していますように、私は時々ステータスコード400(BadRequest)を取得しています。ここに私のコードは次のとおりです。HttpUrlConnection BadRequest - Statuscode 400
HttpURLConnection c = null;
StringBuilder sb = new StringBuilder();
try {
URL u = new URL(url);
c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setRequestProperty("Content-length", "0");
c.setUseCaches(false);
c.setAllowUserInteraction(false);
c.setConnectTimeout(timeout);
c.setReadTimeout(timeout);
c.connect();
int status = c.getResponseCode();
switch (status) {
case HttpURLConnection.HTTP_OK:
case HttpURLConnection.HTTP_CREATED:
BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
}
} catch (SocketTimeoutException ex){
// Handle ...
} catch (MalformedURLException ex) {
// Handle ...
} catch (IOException ex) {
// Handle ...
} finally {
if (c != null) {
try {
c.disconnect();
} catch (Exception ex) {
}
}
}
私は信頼性の高いインターネット接続とも私は私のウェブブラウザでそれをしようとするたびに、私は、データの作品を受信するために使用していますURLを持っています。 ありがとうございます!
それは、より完全な例なしに間違っているかを知るには少し厳しいですが、あなたは上のコンテンツ長を設定している理由はすぐに私は疑問クライアントの要求どのデータのプロデューサーもそれを設定します。しかし、それは実際にはどちらか何かを傷つけることがありません。ヒットしているURLを共有できますか? – stdunbar
本当にありがとうございました。まあコンテンツ長が、残念ながら変更をしなかっ取り除きます。私が使用しているURLはかなりシンプルです。これは、この 'https://maps.googleapis.com/maps/api/geocode/json?address = 95685 + Falkenberg'のようなGoogleマップジオコーディングAPIです。もちろん、このURLの後に私のapiキーを設定しています。 –