Java 和 HttpURLConnection 不发送数据

标签 java netbeans httpurlconnection

我正在尝试让 HttpURLConnection 将 JSON 字符串远程发布到 PHP 文件。无论我做什么都不起作用。这是我当前的代码:

HttpURLConnection httpcon = (HttpURLConnection) ((new URL('http://domain.com/me.php').openConnection()));
                            httpcon.setDoOutput(true);
                            httpcon.setRequestProperty("Content-Type", "application/json");
                            httpcon.setRequestProperty("Accept", "application/json");
                            httpcon.setRequestMethod("POST");
                            httpcon.connect();

                            String initial = "{'out': '" + idir + prod + ".jpg', 'in': '" + item[3] + "'}";
                            byte[] outputBytes = initial.getBytes("UTF-8");

                            OutputStream os = httpcon.getOutputStream();
                            os.write(outputBytes);

                            os.close();

我知道 initial 字符串包含数据,我已对其运行 System.out.printlnoutputBytes 变量以及两者有内容。

我知道它没有发布,因为我设置了 PHP 文件以将发布的内容保存到本地文件中。运行时不会创建任何文件。

我知道 PHP 方面的工作正常,并且服务器接受帖子,因为我可以很好地运行它:

$ curl -H "Accept: application/json" -H "Content-Type: application/json" -d "{'value': 7.5}" "http://domain.com/me.php"

它可以很好地创建文件并将帖子内容写入输出文件。

编辑

好的,打印响应后,我现在收到 401 代码,未经授权。我正在使用 Apache HTPASSWD 身份验证,但我传递的是用户并将 URL 作为 http://user:pass@domain.com/me.php 传递。这在 CLI 中的curl 中有效,所以我认为它也可以在这里工作,显然它不能。

那么如何使用 HttpURLConnection 进行身份验证?

最佳答案

您需要设置基本身份验证。您可以通过纯 Java 或使用 Apache HttpClient 来完成此操作。

How to handle HTTP authentication using HttpURLConnection?

http://www.baeldung.com/httpclient-4-basic-authentication

关于Java 和 HttpURLConnection 不发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25413245/

相关文章:

java - 新手遇到数组问题

java - jconsole 中的类溢出

java - 在 Java 中从一种方法调用数组到另一种方法时遇到问题

java - 使用 netbeans 的 Stripes 框架示例

java - 是否存在评估 java 项目的 2 个不同 svn 版本之间的 "programming effort"的指标?

java - 内部文件服务器设计模式?

c++ - 安装 libx11-dev 后我找不到 Xlib.h

android - 在 android 中使用 HttpURLConnection 发送 JSON 和图像

java - 使用 HttpURLConnection 传递参数

java - HttpUrlConnection 卡住了我的 AsyncTask