java - HttpUrlConnection 方法在 Android 上始终为 GET

标签 java android http

URL url = new URL("http://myserver.com/myendpoint");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
//connection.setRequestMethod("POST") <- this didn't help either
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write("string=test");
out.close();
connection.close()

上面的代码在桌面 JVM 上工作,发送一个 post 请求,在服务器端成功解析并返回 200,但是在 android 上,请求方法仍然是 GET(是的,我检查过它是错误的)并导致 404 异常。官方文档说将 doOutput 设置为 true 会触发将请求方法设置为 POST,但事实并非如此。

最佳答案

404 也不异常(exception)。它是您向其发出请求的服务器返回的 HTTP 状态代码,表示未找到您向其发出请求的网址。这与是否设置 POST 无关。

要检查的事情:

  • 如果您向其发出请求的 url 是正确的。
  • 如果服务器有一个 POST Controller /处理程序映射到您正在向其发出请求的 url。
  • 询问开发服务器的人是否正确处理了这些案例,以及他是否为相关场景发送了正确的响应代码。

额外信息:如果 url 已在服务上注册但不允许 POST 请求,您将收到 415 响应代码。

关于java - HttpUrlConnection 方法在 Android 上始终为 GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37162873/

相关文章:

java - 如何验证servlet处理是否真的在做非阻塞io?

json - 这个 Json 结果应该返回 404 还是 200?

android - 与 xml 图形布局相比,模拟器上的按钮位置不正确

java - JPA - 外键的 ElementCollection

java - 使用可选映射和过滤器重写 if 语句

java - 为什么此代码会抛出 NullPointerException?

android - 使用 Intent 打开 Word 文档时始终为只读

android - 以编程方式将自定义 View 放入 ScrollView(或 Horizo​​ntalScrollView)(无滚动)

http - 交互式 HTTP 服务器

java - jackson 没有填充所有属性