Я знаю, что этот вопрос задавался ранее, но ни один из ответов, которые я нашел, не помогает мне. Я пытаюсь подключиться к простой службе входа через SSL с Basic Http Auth. Служба размещена на 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();
}