Java HttpClient доступ к изображению с идентификатором сеанса - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь получить доступ к изображению через URL. Проблема в том, что мне нужно пройти аутентификацию через идентификатор сеанса, чтобы получить доступ к изображению. Я пытаюсь пройти проверку подлинности, но получаю 403. Кроме того, как добавить идентификатор сеанса и другую информацию после проверки подлинности для получения входного потока изображения? Вот моя попытка:

CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost("https://cloud.openalpr.com/account/login/");
List<NameValuePair> form = new ArrayList<>();
form.add(new BasicNameValuePair("username","user"));
form.add(new BasicNameValuePair("password", "password"));

UrlEncodedFormEntity entity = new UrlEncodedFormEntity(form, Consts.UTF_8);
    httpPost.setEntity(entity);
    httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");
httpPost.setHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X ...");
CloseableHttpResponse response = httpClient.execute(httpPost);

1 Ответ

0 голосов
/ 03 мая 2018

Для этого сервера требуются другие поля: csrfmiddlewaretoken и next. Смотрите ниже изображение, извлеченное с сайта https://cloud.openalpr.com/account/login/

enter image description here

Таким образом, вы должны сделать:

List<NameValuePair> form = new ArrayList<>();
form.add(new BasicNameValuePair("username","user"));
form.add(new BasicNameValuePair("password", "password"));
form.add(new BasicNameValuePair("csrfmiddlewaretoken", "xxxxxxx"));
form.add(new BasicNameValuePair("next", ""));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...