Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / авторизация на сайте и вывод данных / 15 сообщений из 15, страница 1 из 1
17.02.2018, 11:58
    #39603425
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
здравствуйте всем!
собственно сабж, подскажите как надо реализовать?

пока вот что есть может это не правильно но все же.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
public class MyExample {
    public static void main(String[] args) throws IOException {
        String url = "https://qwerty.uz";

        HttpsURLConnection conn = (HttpsURLConnection) new URL(url).openConnection();
        conn.setRequestMethod("GET");
        conn.setUseCaches(false);
        conn.connect();

        StringBuilder sb = new StringBuilder();
        if (HttpsURLConnection.HTTP_OK == conn.getResponseCode()) {
            BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf8"));

            String line;
            while ((line = in.readLine()) != null) {
                sb.append(line);
                sb.append("\n");
            }
            System.out.println(sb.toString());
            
        } else {
            System.out.println("fail: " + conn.getResponseCode() + ", " + conn.getResponseMessage());
        }
    }
}



скорее Basic authentication не подходит, потому что когда пытался получить данные с помощью REST плагинов браузера получаю 500 ошибку даже указав логин пароль, до тех пор пока с баузера не захожу и не авторизуюсь на сайте.
...
Рейтинг: 0 / 0
17.02.2018, 11:59
    #39603426
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
пожалуйста модератор другую удалите...
...
Рейтинг: 0 / 0
17.02.2018, 12:24
    #39603431
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
Музаффарпожалуйста модератор другую удалите...
А ты смешной:
http://www.sql.ru/forum/actualutils.aspx?action=notifymod&msg=21198604
...
Рейтинг: 0 / 0
17.02.2018, 12:26
    #39603432
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
BlazkowiczА ты смешной:
http://www.sql.ru/forum/actualutils.aspx?action=notifymod&msg=21198604

ну не знал... спасибо! )
...
Рейтинг: 0 / 0
17.02.2018, 13:02
    #39603440
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
Музаффарскорее Basic authentication не подходит
А через гугл?
httpurlconnection basic authentication example
...
Рейтинг: 0 / 0
17.02.2018, 22:15
    #39603566
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
Petro123Музаффарскорее Basic authentication не подходит
А через гугл?
httpurlconnection basic authentication example

вроде так?

Код: java
1.
2.
        String userpassword = "login" + ":" + "password";
        conn.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString(userpassword.getBytes()));



но получаю 500
...
Рейтинг: 0 / 0
18.02.2018, 00:14
    #39603583
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
Музаффарвроде так?
а ссылка где?
Будем гуглу обучать?
...
Рейтинг: 0 / 0
18.02.2018, 05:20
    #39603604
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
Petro123,

извините, но я вас не понимаю...
...
Рейтинг: 0 / 0
18.02.2018, 06:02
    #39603606
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
протестировал всякие варианты если:

1) в пакмане (или ещё что нибудь типа REST Client браузера и т.д.) ввожу сам запрос типа и Basic Authentication, то получаю ошибку 500

2) немножко изменим алгоритм, сначала заходим в
Код: plaintext
и Basic Authentication, и потом сам запрос и мы получаем ответ.

вот как это реализовать в коде?

З.Ы. понимаю возможно это совсем нубский вопрос...
...
Рейтинг: 0 / 0
18.02.2018, 08:57
    #39603609
pavel_nv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
Музаффар,

Так посмотри какие header посылает браузер в запросе, чего гадать то? Может там токен какой. Уверен что страница авторизации что то подобное возвращает.
...
Рейтинг: 0 / 0
18.02.2018, 11:09
    #39603621
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
Музаффарпротестировал всякие варианты если:

1) в пакмане (или ещё что нибудь типа REST Client браузера и т.д.) ввожу сам запрос типа и Basic Authentication, то получаю ошибку 500

2) немножко изменим алгоритм, сначала заходим в
Код: plaintext
и Basic Authentication, и потом сам запрос и мы получаем ответ.

вот как это реализовать в коде?

З.Ы. понимаю возможно это совсем нубский вопрос...

В вашем случае похоже на ошибку разработчика сайта.

По идее при вызове https://qwerty.uz/users/client.htm?id=1 (т.е. внутренний защищенный логин и паролем ресурс как я понял) сервер должен редиректить на https://qwerty.uz/login.htm а не выкидывать ошибку.

В коде аналогично делаем запрос на https://qwerty.uz/login.htm и basic authentication парсим ответ и вытаскиваем cookies (обычно этого достаточно). Во всех след. запросах добавляем эту авторизационную куку
...
Рейтинг: 0 / 0
18.02.2018, 11:14
    #39603622
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
наверное нужно отметить что кук может быть множество например от счетчиков всяких (гугла и яндеска и так далее) нужно найти ту что присылает именно ваш https://qwerty.uz (отследить не проблема если пользуетесь Ну и еще авторизациооные куки с пометкой httponly (обычно)
...
Рейтинг: 0 / 0
18.02.2018, 12:39
    #39603647
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
МузаффарPetro123,

извините, но я вас не понимаю...
Тут уже расписали все.
Я просил ссылку с которой писали код.
И я бы за 10 мин зарустил демку сайт на своей машине для тестов.
- новый проект, jsp
- web.xml галка базовой авторизации.
Всё.
...
Рейтинг: 0 / 0
18.02.2018, 18:24
    #39603721
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
Petro123Тут уже расписали все.не всё расписали
забыли указать что там https
...
Рейтинг: 0 / 0
18.02.2018, 20:55
    #39603760
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
авторизация на сайте и вывод данных
спасибо всем, вроде сделал, но если есть что то изменить то прошу высказаться. может не учитывал ещё некоторые вещи, или вообще не правильно делал...

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
import javax.net.ssl.HttpsURLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Base64;
import java.util.List;

public class Qwerty  {


    private List<String> cookies;
    private HttpURLConnection conn;

    private final String USER_AGENT = "Mozilla/5.0";

    public static void main(String[] args) throws Exception {

        String url = "https://qwerty.uz";
        String query = "https://qwerty.uz/users/client.htm?id=1";

        Qwerty http = new Qwerty();

        // make sure cookies is turn on
        CookieHandler.setDefault(new CookieManager());

        // 1. Send a "GET" request, so that you can extract the form's data.
        String page = http.GetPageContent(url);

        // 2. Construct above post's content and then send a POST request for
        // authentication
        String p = "login:password";
        http.sendPost(url, p);

        // 3. success then go to query.
        String result = http.GetPageContent(query);
        System.out.println(result);
    }

    private void sendPost(String url, String postParams) throws Exception {
        System.out.println("+++++++++++++++++sendPOST");
        URL obj = new URL(url);
        conn = (HttpsURLConnection) obj.openConnection();

        conn.setUseCaches(false);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Host", "uty.smpo.uzgps.uz");
        conn.setRequestProperty("User-Agent", USER_AGENT);
        conn.setRequestProperty("Accept",
                "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
        conn.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
        conn.setRequestProperty("Connection", "keep-alive");
        conn.setRequestProperty("Referer", "https://qwerty.uz");
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        conn.setDoOutput(true);
        conn.setDoInput(true);

        conn.setRequestProperty("Authorization", "Basic " + Base64.getEncoder().encodeToString(postParams.getBytes()));

        int responseCode = conn.getResponseCode();
        System.out.println("\nSending 'POST' request to URL : " + url);
        System.out.println("Post parameters : " + postParams);
        System.out.println("Response Code : " + responseCode);

        try (BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()))) {
            String inputLine;
            StringBuilder response = new StringBuilder();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            // System.out.println(response.toString());
        }

        System.out.println("-----------------sendPOST");
    }

    private String GetPageContent(String url) throws Exception {
        System.out.println("++++++++++++++GetPageContent");
        URL obj = new URL(url);
        conn = (HttpsURLConnection) obj.openConnection();

        // default is GET
        conn.setRequestMethod("POST");

        conn.setUseCaches(false);

        // act like a browser
        conn.setRequestProperty("User-Agent", USER_AGENT);
        conn.setRequestProperty("Accept",
                "text/html,application/xhtml+xml,application/xml, application/json;charset=UTF-8;q=0.9,*/*;q=0.8");
        conn.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
        if (cookies != null) {
            for (String cookie : this.cookies) {
                conn.addRequestProperty("Cookie", cookie.split(";", 1)[0]);
            }
        }
        int responseCode = conn.getResponseCode();
        System.out.println("\nSending 'POST' request to URL : " + url);
        System.out.println("Response Code : " + responseCode);

        StringBuffer response;
        try (BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()))) {
            String inputLine;
            response = new StringBuffer();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine+"\n");
            }
        }

        // Get the response cookies
        setCookies(conn.getHeaderFields().get("Set-Cookie"));

        System.out.println("------------------GetPageContent");
        return response.toString();

    }

    public void setCookies(List<String> cookies) {
        this.cookies = cookies;
    }

}
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / авторизация на сайте и вывод данных / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]