【发布时间】:2017-09-02 16:14:16
【问题描述】:
我正在尝试使用HttpUrlConnection 为我的请求添加标头,但setRequestProperty() 方法似乎不起作用。服务器端没有收到任何带有我的标头的请求。
HttpURLConnection hc;
try {
String authorization = "";
URL address = new URL(url);
hc = (HttpURLConnection) address.openConnection();
hc.setDoOutput(true);
hc.setDoInput(true);
hc.setUseCaches(false);
if (username != null && password != null) {
authorization = username + ":" + password;
}
if (authorization != null) {
byte[] encodedBytes;
encodedBytes = Base64.encode(authorization.getBytes(), 0);
authorization = "Basic " + encodedBytes;
hc.setRequestProperty("Authorization", authorization);
}
【问题讨论】:
-
为我工作,你如何判断标头已发送但未收到?
-
很抱歉,这听起来很愚蠢,但是您在哪里调用 URLConnection 上的
connect()? -
我不确定这是否有效果,但您可以尝试添加
connection.setRequestMethod("GET");(或 POST 或任何您想要的)? -
您将
authorization初始化为空字符串。如果username或password为空,那么authorization将是空字符串,而不是空字符串。因此,在我看来,最终的if将被执行,但"Authorization"属性将设置为空。