お知らせ
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();
}