gpt4 book ai didi

android - 如何在 Android 上使用基于 SSL 的基本身份验证连接到 Http 服务器?

转载 作者:太空宇宙 更新时间:2023-11-03 14:20:53 25 4
gpt4 key购买 nike

我知道以前有人问过这个问题,但我找到的答案都没有帮助我。我正在尝试使用 Basic Http Auth 通过 SSL 连接到一个简单的登录服务。该服务托管在 https://localhost:8443/login .当我从浏览器(在 Windows、OSX 和 Android 上)访问该服务时,它工作正常,我输入了我的用户名和密码,并且我得到了正确的身份验证。但是,当我尝试通过我的 Xoom 上的代码执行此操作时,我收到一个 ClientProtocolException,提示“服务器无法使用有效的 HTTP 响应进行响应”。谁能给我一个正确方向的插入力?这是我的代码

        String result = null;

HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET);
HttpProtocolParams.setUseExpectContinue(params, true);

SchemeRegistry schReg = new SchemeRegistry();
schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);

DefaultHttpClient client = new DefaultHttpClient(conMgr, params);

HttpGet get = new HttpGet(preferences.getString(getString(R.string.Security_Login_URL),
"https://localhost:80/login"));

String credentials = Base64.encodeToString((username + ":" + password).getBytes(), Base64.URL_SAFE);
if(credentials!=null){
get.addHeader("Authorization","Basic "+credentials);
ResponseHandler responseHandler=new BasicResponseHandler();
try {
result = client.execute(get, responseHandler);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

最佳答案

两个常见问题可能导致此问题:

  1. 您不应该自己进行 BASIC 身份验证。 Apache HttpClient 已经包含了执行 BASIC 身份验证的所有功能。看看Basic AuthenticationPreemptive BASIC authentication

  2. 您的 Android 设备是否信任来自服务器的证书?当您的浏览器信任该证书时,并不意味着您的设备也信任它。 Android 的受信任证书颁发机构列表非常有限。当您在 Android 内置浏览器上访问该网站时,您可以从您的设备上进行检查。如果没有出现警告消息,则一切正常。有关信任来自 Android 设备的其他证书的更多信息,您可以查看我的 blog article .

享受

关于android - 如何在 Android 上使用基于 SSL 的基本身份验证连接到 Http 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5485638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com