3 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
我以前使用過(guò)以下代碼,它在TomCat中啟用了基本身份驗(yàn)證:
URL myURL = new URL(serviceURL);
HttpURLConnection myURLConnection = (HttpURLConnection)myURL.openConnection();
String userCredentials = "username:password";
String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userCredentials.getBytes()));
myURLConnection.setRequestProperty ("Authorization", basicAuth);
myURLConnection.setRequestMethod("POST");
myURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
myURLConnection.setRequestProperty("Content-Length", "" + postData.getBytes().length);
myURLConnection.setRequestProperty("Content-Language", "en-US");
myURLConnection.setUseCaches(false);
myURLConnection.setDoInput(true);
myURLConnection.setDoOutput(true);
您可以嘗試上面的代碼。上面的代碼用于POST,您可以為GET修改它

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
只是因?yàn)槲以谏厦娴拇鸢钢袥](méi)有看到這一點(diǎn)信息,最初發(fā)布的代碼片段無(wú)法正常工作的原因是因?yàn)?code>encodedBytes變量是a byte[]
而不是String
值。如果您將傳遞byte[]
給a new String()
,如下所示,代碼段完美無(wú)缺。
encodedBytes = Base64.encode(authorization.getBytes(), 0);authorization = "Basic " + new String(encodedBytes);
添加回答
舉報(bào)