在Java中为https get请求设置头授权
我正在处理一个客户端,该客户端使用带有头授权的RESTAPI。我很难开始添加http头授权。我正在使用下面的代码:在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
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应用代码。