[解決済み] JSONでHttp 415 Unsupported Media typeエラーが発生した。
2022-03-06 14:33:16
質問
JSONリクエストでRESTサービスを呼び出しているのですが、レスポンスに
HTTP 415 "Unsupported Media Type"
というエラーが発生します。
リクエストのコンテンツタイプに
("Content-Type", "application/json; charset=utf8")
.
リクエストにJSONオブジェクトを含めない場合は、問題なく動作します。私が使用しているのは
google-gson-2.2.4
ライブラリでJSONに対応しています。
いくつかの異なるライブラリを使用してみましたが、違いはありませんでした。
どなたか、この問題を解決する方法を教えてください。
以下は私のコードです。
public static void main(String[] args) throws Exception
{
JsonObject requestJson = new JsonObject();
String url = "xxx";
//method call for generating json
requestJson = generateJSON();
URL myurl = new URL(url);
HttpURLConnection con = (HttpURLConnection)myurl.openConnection();
con.setDoOutput(true);
con.setDoInput(true);
con.setRequestProperty("Content-Type", "application/json; charset=utf8");
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("Method", "POST");
OutputStream os = con.getOutputStream();
os.write(requestJson.toString().getBytes("UTF-8"));
os.close();
StringBuilder sb = new StringBuilder();
int HttpResult =con.getResponseCode();
if(HttpResult ==HttpURLConnection.HTTP_OK){
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
br.close();
System.out.println(""+sb.toString());
}else{
System.out.println(con.getResponseCode());
System.out.println(con.getResponseMessage());
}
}
public static JsonObject generateJSON () throws MalformedURLException
{
String s = "http://www.example.com";
s.replaceAll("/", "\\/");
JsonObject reqparam=new JsonObject();
reqparam.addProperty("type", "arl");
reqparam.addProperty("action", "remove");
reqparam.addProperty("domain", "staging");
reqparam.addProperty("objects", s);
return reqparam;
}
}
の値は
requestJson.toString()
は :
{"type":"arl","action":"remove","domain":"staging","objects":"http://www.example.com"}
解決方法は?
理由は不明だが、行を削除する
charset=utf8
から
con.setRequestProperty("Content-Type", "application/json; charset=utf8")
は問題を解決しました。
関連
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] HTTP ステータス 500 - サーブレットクラス pkg.coreServlet のインスタンス化に失敗しました。
-
[解決済み] スリーピング中のスレッドが割り込まれ、データベースへの接続が失われる
-
[解決済み] javaでメソッドを呼び出すプログラムのエラー修正
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] UnixツールでJSONをパースする
-
[解決済み] Python RequestsでJSONデータをPOSTする方法とは?
-
[解決済み] PHPでJSONをプリティープリントする
-
[解決済み] POST JSONが415 Unsupported media typeで失敗する、Spring 3 mvc
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] maven. -source 1.5ではラムダ式がサポートされていません。
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] Cloneable throws CloneNotSupportedException
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] javax.naming.NameNotFoundException
-
[解決済み] ファイルを作成せずに、ファイルが存在するかどうかをチェックする
-
[解決済み] Maven: assembly-pluginが全く実行されない
-
[解決済み] Javaでdoubleをfloatに変換する
-
[解決済み] .lengthが解決できない、またはフィールドでない
-
[解決済み] Content-type: application/json; charset=utf-8」の本当の意味は何ですか?