2011-01-05 74 views
21

Tôi đang viết mã kết nối với các trang web và kiểm tra một số mã, như trình thu thập thông tin. Nhưng tôi cần phải kết nối máng proxy và thay đổi địa chỉ IP (vì vậy nó không hiển thị IP của máy khách trong nhật ký máy chủ).Cách sử dụng proxy HTTP trong java

Làm cách nào để thực hiện điều này thông qua java?

+23

hmm bạn nghe có vẻ như bạn thích điều gì đó tốt. – stevebot

Trả lời

43

Bạn có thể sử dụng thuộc tính hệ thống java để thiết lập proxy hoặc chuyển nó làm tùy chọn dòng lệnh.

Bạn có thể tìm thấy một số chi tiết và mẫu here.

Ex: Trước khi mở kết nối

System.setProperty("http.proxyHost", "myProxyServer.com"); 
System.setProperty("http.proxyPort", "80"); 

Hoặc bạn có thể sử dụng các proxy mạng mặc định cấu hình trong sytem

System.setProperty("java.net.useSystemProxies", "true"); 

Kể từ Java 1.5 bạn có thể tạo một thể hiện của proxy và vượt qua nó để phương thức openConnection().

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("123.0.0.1", 8080)); 
URL url = new URL("http://www.yahoo.com"); 
HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy); 
uc.connect(); 

Hoặc như lisak được đề xuất, bạn có thể sử dụng một số thư viện của bên thứ ba hỗ trợ tốt hơn.

+1

Bạn cũng nên lưu ý rằng cấu hình proxy cho HTTPS sử dụng một thuộc tính hơi khác ví dụ. System.setProperty ("https.proxyHost", "myProxyServer.com") ;. Tôi đã tự hỏi tại sao điều này không làm việc cho tôi lúc đầu và đó là vì mã của tôi sử dụng HTTPS. – talawahtech

+1

Tại sao không có thông số Proxy.Type.HTTPS (bảo mật) nào cả? – Stefan

10

Hoặc bạn cũng có thể sử dụng HttpClient để phù hợp với nhu cầu của bạn tốt hơn. Kiểm tra các tài liệu, nó ngắn gọn và rất nhiều thông tin.

DefaultHttpClient httpclient = new DefaultHttpClient(); 

HttpHost proxy = new HttpHost("someproxy", 8080); 
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy); 
+0

Hướng dẫn tại đây: [link] (https://hc.apache.org/httpcomponents-client-4.3.x/tutorial/html/connmgmt.html#d5e475) –

Các vấn đề liên quan