在Android的開發上,搭配Restful Service去取得資料時,通常會使用HttpClient加上HttpGet去向Server抓取資料來源,例如說下面這樣
try
{
HttpResponse response = client.execute(get);
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpStatus.SC_OK){
HttpEntity entity = response.getEntity();
ByteArrayOutputStream out = new ByteArrayOutputStream();
entity.writeTo(out);
out.close();
result = out.toString();
}
}
catch (IOException ex){
result = null;
}

 

而在Restful Service的安全性上面,驗證方式通常會採用基本驗證(在header中加入驗證資訊)加上HTTPs來做(這篇不會提到HTTPs的部分);而加入驗證資訊的部分會像是這樣的方式
String encoding = Base64.encodeToString((userName+":"+userPwd).getBytes(),Base64.NO_WRAP);

 

HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(requestUrl);
get.addHeader("Authorization","Basic "+encoding);

 

這篇筆記的重點就是在Base64編碼的部分,注意到上面編碼的部分,參數是下Base64.No_WRAP,也就是整行資料輸出,不要做任何處理,而一般情況下我們可能會用很直覺的方式下了Base64_Default的參數進去,而當你用default的方式去處理時,會多了一些換行的東西
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()