我如何在Android“本机”中获取此信息
就像浏览器中的以下URL一样,我附加图像以更好地站立
我们如何在Android中使用用户名和密码身份验证从以下URL获取响应
http://eboundservices.com/hash/hash_app.php?code=com.eboundservices.pakistantv
用户名:hashapp
密码:PlayFair00
单击“登录后”后,在浏览器中显示一个字符串,如下所示。
c2VydmVyX3RpbWU9MTAvMTEvMjAxNCAyOjU2OjU3IFBNJmhhc2hfdmFsdWU9R3liN29aK2xQZW94UnhXbjZCaTVxZz09JnZhbmlklky
我想在Android“ Native”中获得此功能
最佳答案
首先,您将使用http身份验证向网站提供用户名/密码,屏幕截图中显示的神秘字符串是身份验证令牌。
通过身份验证后,您将发送用户名/密码/身份验证。服务器的http标头中的令牌。
请注意,我将字符串常量保存在一个单独的称为K的罚款中,这些常量的名称具有很强的描述性,您需要输入适当的值。
私有布尔authenticate(){
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(K.URL_AUTHENTICATE);
String strAuthToken = "";
// Request parameters and other properties.
try{
httpPost.setHeader(K.HEAD_AUTHORIZATION, K.STR_BASIC);
httpPost.setHeader(K.HEAD_USERNAME, K.STR_NAEEM);
httpPost.setHeader(K.HEAD_PASS, K.STR_SECRET);
}catch(Exception exc){
exc.printStackTrace();
return (mbIsAuthenticated = false);
}
/*
* Making HTTP Request
*/
try {
Log.i(K.LOGSERV, "Sending auth. request to server.");
HttpResponse response = httpClient.execute(httpPost);
HttpEntity respEntity = response.getEntity();
if (respEntity != null) {
String content = EntityUtils.toString(respEntity);
Log.d(K.LOGSERV, content);
JSONObject jobject = null;
JSONArray jfinalData = null;
JSONObject jrow = null;
jobject = (JSONObject) new JSONTokener(content).nextValue();
strAuthToken = jobject.getString("auth_token");
if(strAuthToken.length() > 0){
Shared.getInstance().getDB(this).updateGeneralSetting(BSRDB.SETTING_AUTH_TOKEN, strAuthToken);
mbIsAuthenticated = true;
}
}
} catch (ClientProtocolException e) {
// writing exception to log
e.printStackTrace();
mbIsAuthenticated = false;
} catch (IOException e) {
// writing exception to log
e.printStackTrace();
mbIsAuthenticated = false;
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
mbIsAuthenticated = false;
}
return mbIsAuthenticated;
}
上面的代码与Amazon S2云上托管的Web服务一起使用。