在Java中为https get请求设置头授权

在Java中为https get请求设置头授权,java,Java,我正在处理一个客户端,该客户端使用带有头授权的RESTAPI。我很难开始添加http头授权。我正在使用下面的代码: package com.javap; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; import javax.n

我正在处理一个客户端,该客户端使用带有头授权的RESTAPI。我很难开始添加http头授权。我正在使用下面的代码:

package com.javap;

import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

import javax.net.ssl.HttpsURLConnection;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.Collections;
import java.util.Properties;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {


        try {
            sslUtil.turnOffSslChecking();
            Properties prop = new Properties();
            //InputStream input = null;

            InputStream input = Main.class.getResourceAsStream("./application.properties");
            prop.load(input);

            String address = prop.getProperty("address");
            String token = prop.getProperty("token");

            URL url = new URL(address + customerId);
            HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
           conn.setRequestProperty("Authorization",  "Bearer " +  token);

            conn.setRequestMethod("GET");

            conn.setRequestProperty("Accept", "application/json");
            conn.addRequestProperty("User-Agent", "Mozilla/4.0");
            conn.setRequestProperty("Content-Type", "text/plain");
            conn.setRequestProperty("charset", "UTF-8");


            conn.connect();

            if (conn.getResponseCode() != 200) {
                hasSQ = "false";
                throw new RuntimeException("Failed : HTTP error code : "
                        + conn.getResponseCode());
            }else {
                Scanner sc = new Scanner(url.openStream());
                while(sc.hasNext()){
                    inline += sc.nextLine();
                }
                sc.close();
                conn.disconnect();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (KeyManagementException e) {
            e.printStackTrace();
        }
    }
}

我得到一个401的错误。但是使用邮递员,一切都很好,儿子,这与代币无关。有没有办法解决这个问题


提前谢谢

解决了!显然连接成功了,但我正在通过url.openStream()重新连接到Web服务,而没有附加的头授权。这就是为什么。我的坏消息:-p


谢谢。

解决了!显然连接成功了,但我正在通过url.openStream()重新连接到Web服务,而没有附加的头授权。这就是为什么。我的坏消息:-p


谢谢。

发送承载令牌的代码看起来很好。但是这部分
sslUtil.turnofslchecking()敲响了一些警钟。如果它在邮递员身上运行良好,那么您可以从邮递员那里获得代码或标题帮助。转到邮递员右角“保存”下拉按钮附近,有一个名为“代码”的选项链接。点击它,它会显示邮递员是如何为你的API应用代码的。该代码看起来很适合发送承载令牌。但是这部分
sslUtil.turnofslchecking()敲响了一些警钟。如果它在邮递员身上运行良好,那么您可以从邮递员那里获得代码或标题帮助。转到邮递员右角“保存”下拉按钮附近,有一个名为“代码”的选项链接。单击它,它将显示Postman如何为您的API应用代码。