[英]Java and HttpURLConnection not sending data
我正在尝试让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.println
和outputBytes
变量,并且都具有内容。
我知道它没有发布,因为我已将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来实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.