Я использую Apache HttpComponents для создания http-соединения с веб-сайтом. Я сделал несколько способов получить содержимое веб-сайта, используя post/get, отправлять файлы cookie, получать их и хранить их в классе, который я создал с помощью CookieManager. Все работает нормально, но когда я пытаюсь получить содержимое страницы с использованием метода GET, программа продолжает работать, но ничего не делает.Apache HttpComponents в java HttpClient.execute (get) ничего не делает
public HttpResponse sendRequestGet(String url, List<NameValuePair> headers) throws IOException{
HttpGet get = new HttpGet(url);
for (NameValuePair header : headers){
get.setHeader(header.getName(), header.getValue());
}
HttpResponse response = client.execute(get);
System.out.println("----------- STATUS CODE -------------");
System.out.println(response.getStatusLine().getStatusCode() + ": " + url);
System.out.println("-------------------------------------");
return response;
}
Код изображен выше. Строка URL содержит URL-адрес, который я хочу получить доступ, позволяет сказать http://mylink.com/market и параметры заголовков делаются так:
List<NameValuePair> headerList = new ArrayList<NameValuePair>();
headerList.add((NameValuePair) new BasicNameValuePair("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"));
headerList.add((NameValuePair) new BasicNameValuePair("Accept-Language", "en-US;q=1,en;q=0.8"));
headerList.add((NameValuePair) new BasicNameValuePair("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36"));
headerList.add((NameValuePair) new BasicNameValuePair("Cookie", getCookies()));
headerList.add((NameValuePair) new BasicNameValuePair("Referer", "http://mylink.com/profile/"));
headerList.add((NameValuePair) new BasicNameValuePair("Upgrade-Insecure-Requests", "1"));
Если я вызываю функцию с getCookies() возвращает пустую строку, она работает, но проблема в том, что я должен отправить свой идентификатор сеанса, который находится в файлах cookie. Я пробовал отладку, и я обнаружил, что, поскольку строка HttpResponse response = client.execute(get);
ничего не делает, программа все еще выполняется, но она застревает в этой строке. Кроме того, я должен упомянуть, что я могу получить другие страницы, отправляющие необходимые файлы cookie, но http://mylink.com/market/ дает мне эту проблему.
Я уже использовал вкладку chrome 'network', чтобы увидеть взаимодействие между браузером и сервером, единственное, что я не включаю в некоторые заголовки (например, Host). Кто-нибудь знает, что я делаю неправильно? Благодаря