24
Июн
2014

Авторизация в Java используя HttpClient

У меня стоит задача такая, взять данные у одного сайта(нашего корпоративного, не с интернета, но это думаю не важно), к базе не имею доступа и сказали не дадут, хотите парсите со страницы. В общем в этой теме впервые, раньше парсила только с xml или целую html страницу полностью))) А сейчас нужно сначала пройти авторизацию, потом ввести в поисковик id нужного человека и оттуда вытаскивать результат. Два дня вот копаюсь как можно реализовать. Нашла несколько возможных вариантов. С использованием httpclient, но мне выдает страницу ввода пароли, дальше не идет. То есть ввожу страницу после ввода пароли и имени пользователя, но опять же направляют на страницу с запросом пароля. Помогите пожалуйста.

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.http.HttpResponse;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

public class HttpBasicAuth {

public static void main(String[] args) {
    try {
        DefaultHttpClient Client = new DefaultHttpClient();
        Client.getCredentialsProvider().setCredentials(AuthScope.ANY,new UsernamePasswordCredentials("user1", "123456789"));

        HttpGet httpGet = new HttpGet("http://10.10.151.90/default.aspx");
        HttpResponse response = Client.execute(httpGet);

        System.out.println("response = " + response);

        BufferedReader breader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        StringBuilder responseString = new StringBuilder();
        String line = "";
        while ((line = breader.readLine()) != null) {
            System.out.println(line);
            responseString.append(line);
        }

        breader.close();
       String responseStr = responseString.toString();
        System.out.println("responseStr = " + responseStr);

    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

Источник: https://ru.stackoverflow.com/questions/330885/%D0%90%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-%D0%B2-java-%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F-httpclient

Share

Тебе может это понравится...