【问题标题】:How to Pass header attributes via java.net.URL如何通过 java.net.URL 传递标头属性
【发布时间】:2019-02-25 10:32:41
【问题描述】:

我在我的程序中使用第三方 API,其工作是使用作为输入传递的 java.net.URL 对象来构造 SOAP 消息。我通过将 url 作为字符串传递来构造 URL 对象,就是这样。

现在的要求是在将 URL 传递给第三方 API 之前将标题附加到 URL。我的挑战是 API 只接受 URL 作为输入,没有别的。由于我已经用尽了所有选项,您能否告诉我是否有任何解决方法或可用选项可用于这种情况?

【问题讨论】:

  • 您能否发布代码以获取更多详细信息
  • @Santhosh 代码如下所示。 URL urlObj = new URL("localhost:8080"); ThirdPartyAPI obj = new ThirdPartyAPI(urlObj); 现在我想弄清楚我们如何将标题信息附加到 urlObj。
  • 我想你忘了放代码
  • 你对网址的理解不对。 URL 是一个定位器,它永远不会有标题。您是指 HttpUrlConnection 还是 SOAP 消息? en.wikipedia.org/wiki/URL
  • 如果您尝试连接到该 URL,请使用此链接设置标题 stackoverflow.com/questions/12732422/… 否则,如果它是一个肥皂请求,您需要设置 SOAPHeader

标签: java java-io


【解决方案1】:
URL urlObj = new URL(url);
HttpURLConnection connection = (HttpURLConnection) urlObj.openConnection();
connection.setRequestMethod(method.toUpperCase());
connection.setRequestProperty("Authorization", "BASIC "+new String(encodedBase64));
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.setDoInput(true);
connection.setUseCaches(false);
connection.connect();

这就是我对 URL 对象的处理方式
setRequestProperty 会将键值对添加到请求的标头中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    相关资源
    最近更新 更多