私は長いOpenStreetMaps overpass api urlリクエストを渡す必要があります。 GETリクエストには長すぎるので、POSTリクエストを使用することに決めました。残念ながら、RequestMethodを変更すると、400のエラーコードで解決されます(GETメソッドと同じクエリでは200コードになります)。ここでAndroid HttpURLConnection POST RequestMethodの結果が400エラーコード
私のHttpURLConnectionのコードは次のとおりです。
public String downloadUrl(String strUrl) throws IOException {
String data = "";
InputStream iStream = null;
HttpURLConnection urlConnection = null;
try{
URL url = new URL(strUrl);
// Creating an http connection to communicate with url
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("POST");
Log.wtf("JSON","connection started...");
// Connecting to url
urlConnection.setRequestProperty("Content-Type", "application/json");
urlConnection.connect();
Log.wtf("KOD",Integer.toString(urlConnection.getResponseCode()));
// Reading data from url
iStream = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(iStream));
StringBuilder sb = new StringBuilder();
String line = "";
while((line = br.readLine()) != null){
sb.append(line);
}
data = sb.toString();
br.close();
}catch(Exception e){
Log.wtf("ExceptionWhileUrlDownload", e.toString());
}finally{
iStream.close();
urlConnection.disconnect();
}
return data;
}
通常の方法でPOSTする必要があります。代わりに、アプリケーション/ jsonにします。それは間違っていた。さらに、あなたはデータを投稿していません。出力ストリームにデータを書き込んでいません。 – greenapps
'downloadUrl()'あなたは何をダウンロードしようと思っていますか? – greenapps
私はapplication/json行を削除しましたが、それは役に立ちませんでした。私はJson OSMのレスポンスをダウンロードしようとしています。 GETメソッドでは、全体のクエリがstrUrlになっていましたが、ほとんどの場合クエリが長くなりました。 URLのクエリは次のようになります:http://overpass-api.de/api/interpreter?data=[out:json] –
KamCho