Android http базовая аутентификация

У меня проблема с подключением Android http url. У меня есть этот метод:

private String getHtml(String urlString) throws Exception {

StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);

URL url = new URL(urlString);
URLConnection uc = url.openConnection();
uc.setRequestProperty("Authorization", "Basic " + password);
InputStream content = uc.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(content));
String line;
while ((line = in.readLine()) != null) {
    pw.println(line);
} 
return sw.toString();
}

Когда я использую его из обычного Java-приложения, оно работает просто отлично. Но когда я запускаю его из приложения Android, оно не работает.

Я заметил, что URL-соединение является org.apache...HttpURLConnection при запуске в Android. И когда он использует это, он не входит в цикл while.

В обычном Java-приложении он использует sun.net...HttpURLConnection (который работает).

Кто-нибудь есть какие-либо предложения о том, как я могу заставить это работать на Android?

1 ответ

Вы можете попробовать это решение:

        try 
        {
            HttpClient client = new DefaultHttpClient();
            HttpGet request = new HttpGet(url);
            HttpResponse response = client.execute(request);

            InputStream in = response.getEntity().getContent();
        } 
        catch (Exception e) 
        {
            // Code
        }

Не могу вспомнить правильное Исключение в данный момент, но я думаю, вы могли бы его найти.

Другие вопросы по тегам