【发布时间】:2014-04-11 11:07:05
【问题描述】:
我有一个带有 CGI 的服务器,它将 REQUEST_METHOD 打印到 syslog。 我有可以 GET 和 POST 到该 CGI 的网页,这两种方法都可以打印我期望的内容。 我有一个可以 GET 到它的 java 程序。 但是当我尝试在 Java 中使用 POST 时:
URL url = new URL("https://192.168.10.178/mycgi");
conn = (HttpsURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST"); // <- this bit!
InputStream is = conn.getInputStream();
结果是内容长度为零的 GET。 显然,我有更多的代码来设置内容类型和配置并将数据写入其中,但不管有没有其余部分,我仍然会收到到达服务器的 GET 请求。
我发现这里有人抱怨:
https://community.oracle.com/thread/1535571?start=0&tstart=0
很多人似乎有同样的问题,但没有答案,这里:
Android HTTP POST request sent from application but server "sees" it as a GET request
解决方案是使用 apache http 客户端的东西,如果可能的话,我宁愿避免使用它,因为它会向项目中添加一堆不需要它们的依赖项。
我有点不知所措,无法解释这一点。有人有什么建议吗?
【问题讨论】:
-
已删除答案的重复评论:请求采用
https://192.168.10.178/mycgi的形式,并且绝对不包含?或 = 字符
标签: java android http post get