首页
代理IP
短效版
长效版
静态版
独享版
IP池版
隧道代理
短效版
动态转发
客户端
代理合作
帮助中心
动态
登录/注册
产品介绍
开发者指南
API接口
常见问题
代理使用
代理知识
网站公告
开发者指南
快速入门
接入指南
代理IP(短效版)接入指南
代理IP(长效版)接入指南
代理IP(静态版)接入指南
隧道代理(短效版)接入指南
隧道代理(动态转发)接入指南
代码示例
API接口代码示例(Python)
API接口代码示例(Java)
API接口代码示例(C#)
SDK
JAVA SDK
测试代理的可用性
IP池客户端API文档
开发者指南
代码示例
API接口代码示例(Java)
API接口代码示例(Java)
更新时间:
2023-09-06 13:50:51
[TOC] 本文档包含调用小象代理API的代码样例,供开发者参考。 > 代码样例直接运行无法得到正确的结果,因为代码中的API链接和应用账号密码等信息都是虚构的,您替换成自己真实的就可以正常运行了。 使用代码样例过程中遇到问题请联系售后客服,我们会为您提供技术支持。 ## Java ### httpclient [代码下载(gitee)](https://gitee.com/xiaoxiangdaili/java-demo/blob/master/src/main/java/api/HttpClient45Demo.java "代码下载(gitee)") ```java import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpHost; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvider; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.protocol.HttpClientContext; import org.apache.http.config.SocketConfig; import org.apache.http.impl.client.BasicCredentialsProvider; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.impl.client.HttpClients; import java.io.IOException; /** * 小象代理短效代理IP示例 - JAVA,类库 httpclient * * @author xxdl */ public class HttpClient45Demo { // 应用账号(请替换为真实账号) private static String appKey = "appKey"; // 应用密码(请替换为真实密码) private static String appSecret = "appSecret"; private static String api = "https://api.xiaoxiangdaili.com/ip/get?appKey=%s&appSecret=%s&cnt=1&wt=text"; private static int timeout = 10000; private static HttpClientBuilder clientBuilder = null; static { // JDK 8u111版本后,目标页面为HTTPS协议,启用proxy用户密码鉴权 System.setProperty("jdk.http.auth.tunneling.disabledSchemes", ""); SocketConfig socketConfig = SocketConfig.custom().setSoTimeout(timeout).build(); CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(appKey, appSecret)); clientBuilder = HttpClients.custom() .disableAutomaticRetries() .setDefaultSocketConfig(socketConfig) .setDefaultCredentialsProvider(credsProvider); } private static HttpHost getProxy() throws IOException { CloseableHttpResponse httpResp = null; try { RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(timeout) .setConnectTimeout(timeout) .setSocketTimeout(timeout) .setExpectContinueEnabled(false) .setProxy(null) .build(); HttpClientContext localContext = HttpClientContext.create(); HttpGet httpReq = new HttpGet(String.format(api, appKey, appSecret)); httpResp = clientBuilder .setDefaultRequestConfig(requestConfig) .build().execute(httpReq, localContext); if (httpResp.getStatusLine().getStatusCode() == 200) { String content = IOUtils.toString(httpResp.getEntity().getContent(), "UTF-8"); System.out.println("API response: " + content); if (!StringUtils.isEmpty(content)) { String[] splits = content.split(":"); if (splits.length == 2) { return new HttpHost(splits[0], Integer.parseInt(splits[1])); } } } } catch (IOException e) { e.printStackTrace(); } finally { httpResp.close(); } return null; } public static void getUrlContent(String url) throws IOException { CloseableHttpResponse httpResp = null; try { HttpHost proxy = getProxy(); RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(timeout) .setConnectTimeout(timeout) .setSocketTimeout(timeout) .setExpectContinueEnabled(false) .setProxy(proxy) .build(); HttpClientContext localContext = HttpClientContext.create(); httpResp = clientBuilder .setDefaultRequestConfig(requestConfig) .build().execute(new HttpGet(url), localContext); String content = IOUtils.toString(httpResp.getEntity().getContent(), "UTF-8"); System.out.println("Target response:" + content); } catch (IOException e) { e.printStackTrace(); } finally { httpResp.close(); } } public static void main(String[] args) throws Exception { // 要访问的目标页面 String targetUrl = "http://httpbin.org/ip"; for (int i = 0; i < 5; i++) { getUrlContent(targetUrl); Thread.sleep(10000); } } } ``` ------------ ### jsoup [代码下载(gitee)](https://gitee.com/xiaoxiangdaili/java-demo/blob/master/src/main/java/api/JsoupDemo.java "代码下载(gitee)") ```java import org.apache.commons.lang3.StringUtils; import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import java.io.IOException; import java.net.Authenticator; import java.net.InetSocketAddress; import java.net.PasswordAuthentication; import java.net.Proxy; /** * 小象代理短效代理IP示例 - JAVA,类库 jsoup * * @author xxdl */ public class JsoupDemo { // 应用账号(请替换为真实账号) private static String appKey = "appKey"; // 应用密码(请替换为真实密码) private static String appSecret = "appSecret"; private static String api = "https://api.xiaoxiangdaili.com/ip/get?appKey=%s&appSecret=%s&cnt=1&wt=text"; private static int timeout = 10000; private static Proxy getProxy() { try { Document doc = Jsoup.connect(String.format(api, appKey, appSecret)).ignoreContentType(true).get(); if (doc != null) { String content = doc.text(); System.out.println("API response: " + content); if (!StringUtils.isEmpty(content)) { String[] splits = content.split(":"); if (splits.length == 2) { return new Proxy(Proxy.Type.HTTP, new InetSocketAddress(splits[0], Integer.parseInt(splits[1]))); } } } } catch (IOException e) { e.printStackTrace(); } return null; } public static void getUrlContent(String url) { Authenticator.setDefault(new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(appKey, appSecret.toCharArray()); } }); try { Connection connect = Jsoup.connect(url).timeout(timeout).ignoreContentType(true); connect.proxy(getProxy()); Document document = connect.get(); System.out.println("Target response:" + document.text()); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { // 要访问的目标页面 String targetUrl = "https://httpbin.org/ip"; for (int i = 0; i < 5; i++) { getUrlContent(targetUrl); Thread.sleep(10000); } } } ``` ------------ ### okhttp [代码下载(gitee)](https://gitee.com/xiaoxiangdaili/java-demo/blob/master/src/main/java/api/OkHttpDemo.java "代码下载(gitee)") ```java import okhttp3.*; import org.apache.commons.lang3.StringUtils; import java.io.IOException; import java.net.InetSocketAddress; import java.net.Proxy; import java.util.concurrent.TimeUnit; /** * 小象代理短效代理IP示例 - JAVA,类库 okhttp * * @author xxdl */ public class OkHttpDemo { // 应用账号(请替换为真实账号) private static String appKey = "appKey"; // 应用密码(请替换为真实密码) private static String appSecret = "appSecret"; private static String api = "https://api.xiaoxiangdaili.com/ip/get?appKey=%s&appSecret=%s&cnt=1&wt=text"; private static int timeout = 10000; static Authenticator proxyAuthenticator = null; static { proxyAuthenticator = new Authenticator() { public Request authenticate(Route route, Response response) { String credential = Credentials.basic(appKey, appSecret); return response.request().newBuilder() .header("Proxy-Authorization", credential) .build(); } }; } private static Proxy getProxy() { try { Request request = new Request.Builder() .url(String.format(api, appKey, appSecret)) .build(); Response response = new OkHttpClient().newBuilder().build() .newCall(request).execute(); String content = response.body().string(); System.out.println("API response: " + content); if (!StringUtils.isEmpty(content)) { String[] splits = content.split(":"); if (splits.length == 2) { return new Proxy(Proxy.Type.HTTP, new InetSocketAddress(splits[0], Integer.parseInt(splits[1]))); } } } catch (IOException e) { e.printStackTrace(); } return null; } public static void getUrlContent(String url) throws IOException { Request request = new Request.Builder() .url(url) .build(); try { Response response = new OkHttpClient().newBuilder() .proxy(getProxy()) .connectTimeout(timeout, TimeUnit.MILLISECONDS) .writeTimeout(timeout, TimeUnit.MILLISECONDS) .readTimeout(timeout, TimeUnit.MILLISECONDS) .proxyAuthenticator(proxyAuthenticator) .build() .newCall(request).execute(); System.out.println("Target response:" + response.body().string()); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { // 要访问的目标页面 String targetUrl = "http://httpbin.org/ip"; for (int i = 0; i < 5; i++) { getUrlContent(targetUrl); Thread.sleep(1000); } } } ```
上一篇:
API接口代码示例(Python)
下一篇:
API接口代码示例(C#)
产品介绍
开发者指南
API接口
常见问题
代理使用
代理知识
网站公告
快速入门
接入指南
代理IP(短效版)接入指南
代理IP(长效版)接入指南
代理IP(静态版)接入指南
隧道代理(短效版)接入指南
隧道代理(动态转发)接入指南
代码示例
API接口代码示例(Python)
API接口代码示例(Java)
API接口代码示例(C#)
SDK
JAVA SDK
测试代理的可用性
IP池客户端API文档
用户登录
账号
账号修改?
密码
忘记密码?
验证码
获取验证码
立即登录
记住密码
登录
没有帐户?
去注册
欢迎注册小象代理
手机号
验证码
获取验证码
密码
邀请人手机号(非必填)
已阅读并同意
《网络安全协议》
立即注册
已经有账户了?
去登录
找回密码
手机号
验证码
获取验证码
新密码
设置新密码
已经有账户了?
去登录