Maven构建Java使用代理,请求API接口
Maven构建Java使用代理,请求API接口
提示:代理请求访问,请合法使用,谢谢
环境:
Maven:Maven官网
HuTool:HuTool官网
Java8: Java官网-Oracle
Idea:Idea官网
代理IP:芝麻IP
服务器:服务器网站
目录
- Maven构建Java使用代理,请求API接口
- 前言
- 一、Maven环境搭建
- 二、引用Maven包依赖
- hutool配置
- 代理代码配置
- 1、设置白名单
- 提取代理IP和端口
- 完整代码
- 总结
前言
代理服务(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。
提示:下面案例仅供参考
一、Maven环境搭建
本实例采用springboot,快速构建一个maven项目。
二、引用Maven包依赖
hutool配置
<hutool.version>5.8.8</hutool.version>
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>${hutool.version}</version></dependency>
代理代码配置
1、设置白名单
public static void setIp() {String selfIp = "你调用接口方的IPV4";String target = "https://wapi.http.linkudp.com/index/index/save_white?neek=param-neek&appkey=param-appkey&white=" + selfIp;String result = HttpUtil.get(target);System.out.println(result);}
提取代理IP和端口
// 提取链接private static final String API_URL = "http://webapi.http.zhimacangku.com/getip?num=1&type=2&pro=&city=0&yys=0&port=1&pack=param-pack&ts=0&ys=0&cs=0&lb=1&sb=0&pb=4&mr=1®ions=";
获取代理IP和端口,(获取不使用,不算使用量消耗)
String result = HttpUtil.get(API_URL);
使用代理IP和端口访问
public static void Proxies(String urlString, String ipPort) throws Exception {Response response = null;ipPort = ipPort.trim();String ip = ipPort.split(":")[0];int port = Integer.parseInt(ipPort.split(":")[1]);Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ip, port));OkHttpClient httpClient = new OkHttpClient().newBuilder().proxy(proxy).connectTimeout(10, TimeUnit.SECONDS).build();Request request = null;request = (new Request.Builder().url(urlString).build());response = httpClient.newCall(request).execute();System.out.println(response);}
完整代码
package cn.china.hp;import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.util.concurrent.TimeUnit;/*** @Description: Description* @Package cn.china.hp* @Date 2022-12-04* @Author admin* @Since 3.0*/
public class Main2 {// 需要请求的目标网址,!!! 请不要尝试对此网站疯狂访问private static final String TARGET_URL = "http://www.china.org.cn";
// 提取链接private static final String API_URL = "http://webapi.http.zhimacangku.com/getip?num=1&type=2&pro=&city=0&yys=0&port=1&pack=pack&ts=0&ys=0&cs=0&lb=1&sb=0&pb=4&mr=1®ions=";public static void setIp() {String selfIp = "你的调用方IP";String target = "https://wapi.http.linkudp.com/index/index/save_white?neek=neek&appkey=appkey&white=" + selfIp;String result = HttpUtil.get(target);System.out.println(result);}public static void main(String[] args) throws Exception {// 将本地IP设置到白名单setIp();for (int i = 0; i < 1; i++) {String result = HttpUtil.get(API_URL);System.out.println("从接口获取的:" + JSON.parseObject(result));JSONObject jsons = JSON.parseObject(result);int code = jsons.getInteger("code");if(code == 0) {JSONArray array = jsons.getJSONArray("data");for(Object temp : array) {JSONObject json = (JSONObject) temp;System.out.println(json.get("ip"));System.out.println(json.get("port"));System.out.println(result);}} else {// fail}String proxyIp = result.toString();try {// 不开启不消耗数量Proxies(TARGET_URL, proxyIp);Thread.sleep(500);} catch (Exception e) {e.printStackTrace();}Thread.sleep(3000L);}}public static void Proxies(String urlString, String ipPort) throws Exception {Response response = null;ipPort = ipPort.trim();String ip = ipPort.split(":")[0];int port = Integer.parseInt(ipPort.split(":")[1]);Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ip, port));OkHttpClient httpClient = new OkHttpClient().newBuilder().proxy(proxy).connectTimeout(10, TimeUnit.SECONDS).build();Request request = null;request = (new Request.Builder().url(urlString).build());response = httpClient.newCall(request).execute();System.out.println(response);}}
总结
苦尽甘来的那一天,山河星月都是贺礼。
Maven构建Java使用代理,请求API接口相关推荐
- java通过http方式代理请求api接口
最近在对接客户那边第三方合作的http api接口的时候,发现通过java代码的方式请求第三方http接口,发现在我本地可以正常访问,但是把程序部署到客户那边的服务器上就发生超时,找不到访问地址的错误 ...
- 使用Maven构建Java项目
使用Maven构建Java项目 本指南将引导您使用Maven构建一个简单的Java项目. 你会建立什么 您将创建一个提供一天中时间的应用程序,然后使用Maven进行构建. 你需要什么 约15分钟 最喜 ...
- Java: 聚合数据API接口调用城市天气预报
Java: 聚合数据API接口调用城市天气预报 点击进入[数据聚合_数据接口调用_开发者数据API开放平台](官网) 在pom文件中,加入依赖 <!--返回json数据--><dep ...
- java调用第三方天气预报API接口
java调用第三方天气预报API接口 package com.sensordata.controller; import com.common.json.JSONObject; import java ...
- java调用个人微信api接口实现收发消息发朋友圈
个人微信api接口,java调用个人微信api接口实现收发消息发朋友圈 1.微信好友收发消息 /** * 给微信好友发消息 * @author wechatno:t ...
- 一款基于 Java 的可视化 HTTP API 接口开发神器
今天推荐的 5 个项目是: magic-api :一款基于 Java 的可视化 HTTP API 接口开发神器. LanguageTool : 一款基于 Java 语言编写的开源语言校正工具. toB ...
- Maven-EclipseEE使用Maven构建Java web项目从0到1
Maven是什么 安装Maven 解压apache-maven-350-binzip 新建变量M2_HOME配置Maven主目录 在 Path 变量中添加 Maven的bin目录 命令窗口mvn -v ...
- myeclipse java maven web 项目结构,Myeclipse 10 Maven 构建 Java Web 项目
下载 Maven http://maven.apache.org/download.cgi,解压到任意非C盘位置,比如:D:\Java\apache-maven-3.1.0 打开 Myeclipse ...
- maven 构建java项目,jdk版本问题
为什么80%的码农都做不了架构师?>>> 使用maven构建Java项目,默认的 jdk 版本是1.5 详情见官方说明:https://maven.apache.org/plu ...
最新文章
- ajax模拟省市级联动,省市区三级联动和ajax模拟请求(示例代码)
- 使用POI导出百万级数据到excel的解决方案
- 第七天2017/04/14(引用与const、C++基本知识)
- 如何获得带时间的ping的结果
- java 根据类名示例化类_Java LocalDateTime类| ofInstant()方法与示例
- 浅谈JavaScript中forEach与each
- 如何只用一个小时定制一个行业AI 模型?
- 怎样判断电饭锅温度传感器的好坏?_怎样判断一个线束胶带的好坏?
- python模块之re模块
- GBA编程和汉化常用软件汇总
- 存算一体——后摩尔时代的AI芯片架构
- CMSInitiatingOccupancyFraction计算释疑
- 2022年凯立德移动导航系统C-Car版 绝对通用车载
- 正态性检验(Normality test)
- 快递公司面单纸张标准
- 74HC573芯片介绍
- Android面试之计算机网络基础
- supervisor 进程托管程序的使用示例
- java计算机毕业设计计算机专业招聘网站源码+mysql数据库+系统+lw文档+部署
- c语言打印吉祥图案,中国古代吉祥图案的寓意(二)