HTTP Proxy Demo 代碼java
一、Pythongolang
#! -*- encoding:utf-8 -*- import requests # 要訪問的目標頁面 targetUrl = "http://ip.hahado.cn/ip" # 代理服務器 proxyHost = "ip.hahado.cn" proxyPort = "39010" # 代理隧道驗證信息 proxyUser = "username" proxyPass = "password" proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % { "host" : proxyHost, "port" : proxyPort, "user" : proxyUser, "pass" : proxyPass, } proxies = { "http" : proxyMeta, "https" : proxyMeta, } resp = requests.get(targetUrl, proxies=proxies) print resp.status_code print resp.text
二、C Sharp服務器
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://ip.hahado.cn/ip"); WebProxy myProxy = new WebProxy(); Uri newUri = new Uri("http://ip.hahado.cn:39010"); myProxy.Address = newUri; myProxy.Credentials = new NetworkCredential("username", "password"); request.Proxy = myProxy;
三、PHP多線程
// 要訪問的目標頁面 $targetUrl = "http://ip.hahado.cn/ip"; //$targetUrl = "http://ip.hahado.cn/switch-ip"; //$targetUrl = "http://ip.hahado.cn/current-ip"; // 代理服務器 define("PROXY_SERVER", "ip.hahado.cn:39010"); // 隧道身份信息 define("PROXY_USER", "username"); define("PROXY_PASS", "password"); $proxyAuth = base64_encode(PROXY_USER . ":" . PROXY_PASS); $headers = implode("\r\n", [ "Proxy-Authorization: Basic {$proxyAuth}", "Proxy-Switch-Ip: yes", ]); $options = [ "http" => [ "proxy" => $proxyServer, "header" => $headers, "method" => "GET", ], ]; $context = stream_context_create($options); $result = file_get_contents($url, false, $context); var_dump($result);
四、JAVAide
import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.Authenticator; import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.PasswordAuthentication; import java.net.Proxy; import java.net.URL; class ProxyAuthenticator extends Authenticator { private String user, password; public ProxyAuthenticator(String user, String password) { this.user = user; this.password = password; } protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(user, password.toCharArray()); } } /** * 注意:下面代碼僅僅實現HTTP請求連接,每一次請求都是無狀態保留的,僅僅是此次請求是更換IP的,若是下次請求的IP地址會改變 * 若是是多線程訪問的話,只要將下面的代碼嵌入到你本身的業務邏輯裏面,那麼每次都會用新的IP進行訪問,若是擔憂IP有重複, * 本身能夠維護IP的使用狀況,並作校驗。 */ public class ProxyDemo { public static void main(String args[]) throws Exception { // 要訪問的目標頁面 String targetUrl = "http://ip.hahado.cn/ip"; //String targetUrl = "http://ip.hahado.cn/switch-ip"; //String targetUrl = "http://ip.hahado.cn/current-ip"; // 代理服務器 String proxyServer = "ip.hahado.cn"; int proxyPort = 39010; // 代理隧道驗證信息 String proxyUser = "username"; String proxyPass = "password"; try { URL url = new URL(targetUrl); Authenticator.setDefault(new ProxyAuthenticator(proxyUser, proxyPass)); // 建立代理服務器地址對象 InetSocketAddress addr = new InetSocketAddress(proxyServer, proxyPort); // 建立HTTP類型代理對象 Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); // 設置經過代理訪問目標頁面 HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy); // 設置IP切換頭 connection.setRequestProperty("Proxy-Switch-Ip","yes"); // 解析返回數據 byte[] response = readStream(connection.getInputStream()); System.out.println(new String(response)); } catch (Exception e) { System.out.println(e.getLocalizedMessage()); } } /** * 將輸入流轉換成字符串 * * @param inStream * @return * @throws Exception */ public static byte[] readStream(InputStream inStream) throws Exception { ByteArrayOutputStream outSteam = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = -1; while ((len = inStream.read(buffer)) != -1) { outSteam.write(buffer, 0, len); } outSteam.close(); inStream.close(); return outSteam.toByteArray(); } }
五、golangthis
package main import ( "net/url" "net/http" "bytes" "fmt" "io/ioutil" ) const ProxyServer = "ip.hahado.cn:39010" type ProxyAuth struct { License string SecretKey string } func (p ProxyAuth) ProxyClient() http.Client { proxyURL, _ := url.Parse("http://" + p.License + ":" + p.SecretKey + "@" + ProxyServer) return http.Client{Transport: &http.Transport{Proxy:http.ProxyURL(proxyURL)}} } func main() { targetURI := "http://ip.hahaod.cn/ip" //targetURI := "http://ip.hahaod.cn/switch-ip" //targetURI := "http://ip.hahaod.cn/current-ip" // 初始化 proxy http client client := ProxyAuth{License: "username", SecretKey: "password"}.ProxyClient() request, _ := http.NewRequest("GET", targetURI, bytes.NewBuffer([] byte(``))) // 切換IP (只支持 HTTP) request.Header.Set("Proxy-Switch-Ip", "yes") response, err := client.Do(request) if err != nil { panic("failed to connect: " + err.Error()) } else { bodyByte, err := ioutil.ReadAll(response.Body) if err != nil { fmt.Println("讀取 Body 時出錯", err) return } response.Body.Close() body := string(bodyByte) fmt.Println("Response Status:", response.Status) fmt.Println("Response Header:", response.Header) fmt.Println("Response Body:\n", body) } } 更多代理設置教材請複製鏈接打開:https://v.duoip.cn/customer/signup/?sale=xujinyang1991