お知らせ
2023.12.5(Tue)
目次
こんにちは。ぐっさんです。
Patchメソッドを使って、Java8のHttpClientで送信したところ、405エラーが発生してしまい、解決に時間がかかりました。その際の解決方法をご紹介します。
結論から言うと、Java11にバージョンを上げ、新しいバージョンのClientを使用しました……。
java.io.IOException: Server returned HTTP response code: 405 for URL: https://**********
エラー発生時の環境は、下記の通りです。
冒頭で書いてしまいましたが、Java8のClientで解決できず、Java11にバージョンを上げ、下記の通り、対応しました。
try { String uri = "https://****"; String body = "<<JSON etc..>>"; // Create HttpClient HttpClient httpClient = HttpClient.newBuilder() .version(HttpClient.Version.HTTP_1_1) .build(); // Create HttpRequest HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(uri)) .method("PATCH", BodyPublishers.ofString(body)) .setHeader("Content-Type", "application/json") .build(); // Send HttpResponse<InputStream> httpResponse = httpClient.send(request, HttpResponse.BodyHandlers.ofInputStream()); } catch (Exception e) { e.printStackTrace(); }