私はPythonとC#(コンソールアプリケーション)で与えられた例に基づいて、postメソッドを使用してAPIにデータを送信するバックエンドサーバー側のJavaアプリケーションを構築しています。 。このAPIには、さまざまな応答コードに関連付けられた特定の応答があります。私は、以下のコードを使用してみましたが、応答メッセージは、私がアクセスしているAPIのメッセージではなく、応答コードに関連付けられた汎用システムメッセージのようです。Javaでサーバー側のHTTPエラーメッセージを取得する
System.out.println("Response Code : " + connection.getResponseCode());
System.out.println("Response Message : " + connection.getResponseMessage());
C#の例では、WebExceptionエラー処理を使用していましたが、Java同等のものが見つからない場合もあります。
編集:これは私が403で取得していますエラーで、Pythonの例では、これは私が応答を構築するために使用しているコードです
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: https://[redacted]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1926)
at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1921)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1920)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1490)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:59)
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://api.rentrak.com/tv/v3/national_airing_views
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:56)
カスタム応答を返さ
StringBuilder response;
try (BufferedReader in = new BufferedReader(
new InputStreamReader(connection.getInputStream()))) {
String inputLine;
response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
}
私は非常に理解していれば、あなたは、HTTPレスポンスのレスポンスコードを取得したいですか?ライト? – thepaulo
APIに格納されている応答メッセージを取得したい – MosaicOrange
呼び出されたWSがSOAPの場合、モデル化されていないフォールトに対しては「SOAPFaultException」を、モデル化されたフォールトには例外の通常のサブクラスを取得します。 [this](https://docs.oracle.com/cd/E24329_01/web.1211/e24965/faults.htm#WSADV623) –