3

我正在编写一个 java 代码来将 POST 请求发送到一个 URL,但它被挂在粗体表示的行上。我在安卓模拟器上运行这个

URL url = new URL("htt
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
OutputStream urlc = connection.getOutputStream(); //line on which code is getting hanged
OutputStreamWriter writer = new OutputStreamWriter(urlc);
writer.write("message");
writer.close();

我也可以在模拟器浏览器上运行互联网。那就是我检查了互联网是否正常工作。

4

3 回答 3

1

我有同样的问题,我的错误是我设置了太大的超时(120秒)。更大的超时使 HttpUrlConnection 在消耗每一行之前等待更多时间。当我将它减少到 20 秒时,它的工作速度要快得多。

更改前-等待时间为4-5秒更改后-仅0.5-1.5秒。

于 2016-06-15T17:44:22.520 回答
0

看到是我的答案之一,它将帮助您并指导您正确的方向。

于 2012-11-22T05:50:07.260 回答
0

我有同样的问题。您必须启用您的应用程序的计费。

如果未启用计费HttpURLConnection,Java 8 环境中的本机 ( ) 将不起作用。

https://cloud.google.com/appengine/docs/standard/java/issue-requests

当您的应用程序使用默认行为在 Java 8 中运行时,您必须启用您的应用程序进行计费,否则您将收到以下异常:

  • java.net.UnknownHostException
  • java.net.SocketTimeoutException
  • java.io.IOException

另一种选择是使用 legacy urlfetch,但是,您会遇到其他问题,例如:

如果同时使用 Objectify 6.0 和 <url-stream-handler>,则会出现“DatastoreException:请求缺少所需的身份验证凭据”

于 2019-05-04T20:23:04.927 回答