当前位置: 首页 > 知识库问答 >
问题:

使用HttpURLConnection通过http传输XML-获取错误401

司马自明
2023-03-14

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

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);

共有1个答案

吕征
2023-03-14

请尝试按以下方式添加身份验证标头

String encoded = Base64.getEncoder().encodeToString((username + ":" + password).getBytes(StandardCharsets.UTF_8));
conn.setRequestProperty("Authorization", "Basic " + encoded);

ps.使用Java 8 Base64编码器

 类似资料:
  • 用于图像文件: 以下是我完成的错误: java.net.socketException:sendto失败:在libcore.io.iobridge.MaybeThrowAfterSendto(Iobridge.java:586)在libcore.io.iobridge.sendto(Iobridge.java:555)在java.net.plainsockeTimpl.write(plainsoc

  • 问题内容: 我的网站上有一个MySQL数据库,我想知道如何通过PHP从表中的以下各列获取XML输出: 你做了 国家 问题答案: XMLWriter的示例。 输出:

  • 今天早上我更新了我的IntelliJ IDEA,之后我打开了我的项目,突然我在我的lambda表达式中得到了一个错误。 首先我得到了这个: 然后我尝试更改项目语言级别,然后将其设置回默认值。现在我明白了: IntelliJ项目结构选项: 这是我的lambda:在我更新IntellJ之前我再说一遍,它起作用了:

  • 我正在尝试在javascript中自定义一个可以通过REST调用访问的endpoint。此终结点处理与不同情况相关的多个条件(基本上它生成一次性密码,然后验证它以检查它是否过期等)。 所以基本上结构是这样的: 我在开始时设置了一个对象,然后映射一个json消息,以便检索具有不同代码/消息响应的正文。因此,当终结点输入这些条件时,它将返回对象,并且 Header 始终为 200(调用成功)。像这样:

  • 我在使用HTTPUrlConnection时遇到了一些问题。代码基本上是在循环中运行的,每次都连接到不同的URL,检查响应,如果响应满足某些条件,则退出。我被StackOverflowerr搞砸了,但我不确定自己搞砸了什么。我没有使用

  • 我尝试使用Android sdk获取一个基本的传输路线,但我缺少我需要的数据。 基本上,我想得到的数据和我们出发的计划者完全一样。在那里你可以看到台阶,它们的出发和到达时间,哪种类型的过境,它出发或到达哪个站台。 所以当我尝试在Android sdk中使用RoutePlan时,它给了我一个错误的tta,它比我所看到的没有任何额外步骤的情况下应该多了一个小时。也没有显示台阶的站台和出发/到达时间。这