Я пытаюсь закодировать простого бота для подключения через прокси (промежуточное соединение) и получить ответ от веб-сайта, такого как Facebook, используя apache httpclient. но я не знаю, почему я получаю эту ошибку как ответ: HTTP / 1.1 403 Запретный доступ запрещен.
Я пытался добавить заголовок в запрос, но он не работает.
Помощь Pls
Спасибо заранее
****** код ********
package bot;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.routing.HttpRoutePlanner;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.DefaultProxyRoutePlanner;
import org.apache.http.util.EntityUtils;
public class Demo2 {
public static void main(String[] args) {
HttpHost proxyhost = new HttpHost("54.164.133.248", 3128);
// Creating an HttpHost object for target
HttpHost targethost = new HttpHost("facebook.com",443);
// creating a RoutePlanner object
HttpRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxyhost);
// Setting the route planner to the HttpClientBuilder object
HttpClientBuilder clientBuilder = HttpClients.custom();
clientBuilder = clientBuilder.setRoutePlanner(routePlanner);
// Building a CloseableHttpClient
CloseableHttpClient httpclient = clientBuilder.build();
// Creating an HttpGet object
HttpGet httpget = new HttpGet("/");
httpget.setHeader("scheme", "https");
httpget.setHeader("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9");
httpget.setHeader("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36");
httpget.setHeader("Connection", "keep-alive");
try {
// Executing the Get request
HttpResponse httpresponse = httpclient.execute(targethost, httpget);
// Printing the status line
System.out.println("httpresponse.getStatusLine() : " + httpresponse.getStatusLine());
// Printing all the headers of the response
Header[] headers = httpresponse.getAllHeaders();
for (int i = 0; i < headers.length; i++) {
System.out.println("header " + i + " : " + headers[i]);
}
// Printing the body of the response
HttpEntity entity = httpresponse.getEntity();
if (entity != null) {
System.out.println(EntityUtils.toString(entity));
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}