【エラー解決方法】Java8のHttpClientを使ってPatchで送信した際に405エラーが発生

こんにちは。ぐっさんです。
 
Patchメソッドを使って、Java8のHttpClientで送信したところ、405エラーが発生してしまい、解決に時間がかかりました。その際の解決方法をご紹介します。
 
結論から言うと、Java11にバージョンを上げ、新しいバージョンのClientを使用しました……。

エラー内容

java.io.IOException: Server returned HTTP response code: 405 for URL: https://**********

エラー発生時の環境

エラー発生時の環境は、下記の通りです。

Java
1.8

エラー解決方法

冒頭で書いてしまいましたが、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();
}

REST APIもスタンダードになってきたところで、現行システムで対応する際には注意が必要ですね。
 
 
 
 
《関連記事》

記事をシェア
MOST VIEWED ARTICLES