Java 在post请求中处理HTTP 503的最佳方法

Java 在post请求中处理HTTP 503的最佳方法,java,http-post,Java,Http Post,我当前正在使用post请求访问一个服务,我使用HttpsURLConnection并调用conn.getOutputStream()将有效负载写入连接 DataOutputStream os = new DataOutputStream(conn.getOutputStream()); os.writeBytes(Payload); 如果连接已返回http 503 service unavailable响应,则在尝试写入输出流时,我会收到一个java.io.IOException,如果我使用以

我当前正在使用post请求访问一个服务,我使用HttpsURLConnection并调用conn.getOutputStream()将有效负载写入连接

DataOutputStream os = new DataOutputStream(conn.getOutputStream());
os.writeBytes(Payload);
如果连接已返回http 503 service unavailable响应,则在尝试写入输出流时,我会收到一个java.io.IOException,如果我使用以下方法检查此503响应:

conn.getResponseCode()
在写入输出流之前,我会得到异常:

"java.net.ProtocolException: Cannot write output after reading input"
我只是想知道是否有更好的方式来处理这个问题

非常感谢您的帮助


谢谢。

当您调用
conn.getResponseCode()
时,将发送请求并读取响应。因此,不可能再写入输出流

捕获IOException并使用
conn.getResponseCode()
获取有关异常原因的更多信息:

try {

  ...
  DataOutputStream os = new DataOutputStream(conn.getOutputStream());
  os.writeBytes(Payload);
  ...

} catch (IOException e) {
  ...
  conn.getResponseCode();
  ...
}

调用
conn.getResponseCode()
时,将发送请求并读取响应。因此,不可能再写入输出流

捕获IOException并使用
conn.getResponseCode()
获取有关异常原因的更多信息:

try {

  ...
  DataOutputStream os = new DataOutputStream(conn.getOutputStream());
  os.writeBytes(Payload);
  ...

} catch (IOException e) {
  ...
  conn.getResponseCode();
  ...
}

如何通过调用conn.getResponseCode()“…在写入输出流之前检查503响应,然后获取异常…”。如何通过调用conn.getResponseCode()“…在写入输出流之前检查503响应,然后获取异常…”。感谢您的响应-注意,然后,我还必须将conn.getResponseCode()封装在自己处理的try-catch语句中。没有什么太棘手的事,但觉得值得一提。再次感谢。感谢您的回复-一张便条,然后我还要将conn.getResponseCode()包装在我处理的try-catch语句中。没有什么太棘手的事,但觉得值得一提。再次感谢。