【问题标题】:How to add header to HttpRequest of GET method in Java如何在 Java 中的 GET 方法的 HttpRequest 中添加标头
【发布时间】:2015-05-19 20:19:18
【问题描述】:

我必须传递一个令牌作为验证每个 GET 请求以访问 RESTful Web 服务的一部分。下面是我用来访问 REST api 的代码:

public static String httpGet(String urlStr, String[] paramName, String[] paramVal) throws Exception {
        URL url = new URL(urlStr);
        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
        conn.setRequestMethod("GET");
        conn.setDoOutput(true);
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 

        OutputStream out = conn.getOutputStream();
        Writer writer = new OutputStreamWriter(out, "UTF-8");
        for (int i = 0; i < paramName.length; i++) {
            writer.write(paramName[i]);
            writer.write("=");
            writer.write(URLEncoder.encode(paramVal[i], "UTF-8"));
            writer.write("&");
        }
        writer.close();
        out.close();

        if (conn.getResponseCode() != 200) {
            System.out.println("Response code: "+conn.getResponseCode());
            throw new IOException(conn.getResponseMessage());
        }

        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        StringBuilder sb = new StringBuilder();
        String line;
        while ((line = rd.readLine()) != null) {
            sb.append(line);
        }
        rd.close();

        conn.disconnect();
        return sb.toString();
    }

我看不到任何这样的方法来设置为 HttpsURLConnection 提供的 Header conn.setHeader()。它应该类似于 X-Cookie: token={token}; 请帮我找到设置标头的方法。

【问题讨论】:

    标签: java web-services rest http-headers access-token


    【解决方案1】:

    你可以使用:

    conn.addRequestProperty("X-Cookie", "token={token}");
    

    setRequestProperty() 也可以

    【讨论】:

      【解决方案2】:

      当您执行以下操作时,您已经在代码中为您的请求设置了标头:

          conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
      

      即如果您正在与之通信的服务要求您在“X-Cookie”标头中发送您的令牌,您可以简单地对该标头执行相同的操作:

      conn.setRequestProperty("X-Cookie", "token={token}"); 
      

      【讨论】:

        猜你喜欢
        • 2019-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-10
        • 1970-01-01
        • 2019-07-16
        相关资源
        最近更新 更多