Я разрабатываю приложение для Android, способное считывать данные из базы данных Lotus Domino. Я начал создавать страницу для проверки подлинности HTTP, и я столкнулся с множеством трудностей. Это мой фрагмент кода:Антенна HTTP-аутентификация на сервере Lotus Domino
public void GoAuth(View v){
final String httpsURL = "http://xxx.xxx.xxx.xxx/names.nsf/mypage?openpage";
final DefaultHttpClient client = new DefaultHttpClient();
final HttpPost httppost = new HttpPost(httpsURL);
String userName = "demo";
String password = "demo";
try {
//authentication block:
final List<BasicNameValuePair> nvps = new ArrayList<BasicNameValuePair>();
nvps.add(new BasicNameValuePair("Username", userName));
nvps.add(new BasicNameValuePair("Password", password));
final UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(nvps, HTTP.UTF_8);
httppost.setEntity(p_entity);
//sending the request and retrieving the response:
HttpResponse response = client.execute(httppost);
HttpEntity responseEntity = response.getEntity();
if (response.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK){
//handling the response
final InputSource inputSource = new InputSource(responseEntity.getContent());
TextView res=(TextView)findViewById(R.id.result);
res.setText("Server response: "+inputSource.toString());
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Ответ сервера: org.xml.sax InputSource @ 40575700
Попытка же самое в браузере, я вижу на страницу входа и после, то содержание " моя страница". Я немного смущен правильным подходом и механизмом, которым я должен следовать на Android. Любая помощь будет принята с благодарностью!
Что вы ожидаете ответа быть? HTML? Создание «InputSource» достигает * ничего *, за исключением подготовки содержимого, полученного от сервера, для анализа, например, анализатора SAX. Вы просто хотите сбросить серверный ответ - в этом случае вам следует просто использовать [EntityUtils # toString (responseEntity)] (http://developer.android.com/reference/org/apache/http/util/EntityUtils.html) , – Jens
Вы видите страницу входа или видите диалоговое окно входа? Если вы видите полную страницу, то сервер Domino настроен на использование аутентификации на основе сеанса (на основе файлов cookie) вместо базовой проверки подлинности. –
@rhsatrhs Я вижу страницу входа в систему, сервер настроен на использование аутентификации сеанса – Vincent