gpt4 book ai didi

java - 使用 HttpURLConnection 通过 http 的 XML - 出现错误 401

转载 作者:行者123 更新时间:2023-12-02 13:20:20 25 4
gpt4 key购买 nike

我正在尝试使用 HttpURLConnection 通过 http url 发送 XML。

以下是我用来测试服务的测试curl命令。

curl -H "Content-Type: text/xml" -H "User-Agent: some/7.88/1" -X POST --Basic -u "username:password" -d '< ?xml packet ... >' http://ip:port/some/url

它工作正常,但是当我尝试使用以下 Java 代码发送它时:

Java 代码:

URL url = new URL("http://ip:port/some/url");   
String requestXMLPacket = "<?xml packet ... >";
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type","text/xml");
conn.setRequestProperty("User-Agent", "some/7.88/1");
conn.setRequestProperty("basic -u", "username:password");

conn.setDoOutput(true);
conn.setInstanceFollowRedirects(false);
conn.setUseCaches(false);
conn.setDoInput(true);

我收到错误:

java.io.IOException: Server returned HTTP response code: 401 for URL: http://ip:port/some/url

这意味着我没有发送正确的授权。

你能告诉我我在这里做错了什么吗?

最佳答案

请尝试按如下方式添加身份验证 header

String encoded = Base64.getEncoder().encodeToString((username + ":" + password).getBytes(StandardCharsets.UTF_8));
conn.setRequestProperty("Authorization", "Basic " + encoded);
PS。它使用Java 8 Base64编码器

关于java - 使用 HttpURLConnection 通过 http 的 XML - 出现错误 401,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43591727/

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