gpt4 book ai didi

Java 和 HttpURLConnection 不发送数据

转载 作者:行者123 更新时间:2023-12-01 12:37:48 24 4
gpt4 key购买 nike

我正在尝试让 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com