php - Android 如何使用身份验证用户名和密码从以下 URL 从 Web 服务器获取响应

标签 php android web-services security authentication

我如何在 Android“ native ”中获得它

在浏览器中点赞以下网址我附上图片以便更好地理解

我们如何通过用户名和密码身份验证在 Android 中从以下 URL 获取响应

http://eboundservices.com/hash/hash_app.php?code=com.eboundservices.pakistantv

用户名:hashapp

密码:PlayFair00

点击登录后在浏览器中显示这样的字符串。

我想在 Android "Native"中得到这个

Authentication Required "User Name" and "Password"

Responce whne Correct "User Name" and "Password"

In Case of Wrong "User Name" or "Password"

最佳答案

首先,您将使用 http 身份验证向网站提供用户名/密码,屏幕截图中显示的神秘字符串是身份验证 token 。 通过身份验证后,您将发送用户名/密码/授权。到服务器的 http header 中的 token 。 请注意,我将字符串常量保存在一个单独的 fine 中,称为 K,这些常量的名称非常具有描述性,您需要引入合适的值。

私有(private) bool 认证(){

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 服务。

关于php - Android 如何使用身份验证用户名和密码从以下 URL 从 Web 服务器获取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26316161/

相关文章:

javascript - 与 Recaptcha 一起使用时,Ajax 调用无法正常工作

javascript - 社交网络帖子未发送到数据库

java - Android Studio运行java类时出错

java - 我的应用程序在启动时崩溃

java - 如何让 jboss 在 URL 路径中接受 %2F 编码的斜杠

c# - 使用 IClientMessageInspector 从 WCF soap 请求中删除操作节点 mustUnderstand

PHP 目标行改变背景颜色

PHP 变量值不更新 MySQL 表字段?

java - 如何将 Zxing 库包含到 android 项目中?

java - 其余 Web 服务的 URL 是什么?