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&regions=";

获取代理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&regions=";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接口相关推荐

  1. java通过http方式代理请求api接口

    最近在对接客户那边第三方合作的http api接口的时候,发现通过java代码的方式请求第三方http接口,发现在我本地可以正常访问,但是把程序部署到客户那边的服务器上就发生超时,找不到访问地址的错误 ...

  2. 使用Maven构建Java项目

    使用Maven构建Java项目 本指南将引导您使用Maven构建一个简单的Java项目. 你会建立什么 您将创建一个提供一天中时间的应用程序,然后使用Maven进行构建. 你需要什么 约15分钟 最喜 ...

  3. Java: 聚合数据API接口调用城市天气预报

    Java: 聚合数据API接口调用城市天气预报 点击进入[数据聚合_数据接口调用_开发者数据API开放平台](官网) 在pom文件中,加入依赖 <!--返回json数据--><dep ...

  4. java调用第三方天气预报API接口

    java调用第三方天气预报API接口 package com.sensordata.controller; import com.common.json.JSONObject; import java ...

  5. java调用个人微信api接口实现收发消息发朋友圈

    个人微信api接口,java调用个人微信api接口实现收发消息发朋友圈 1.微信好友收发消息         /**      * 给微信好友发消息      * @author wechatno:t ...

  6. 一款基于 Java 的可视化 HTTP API 接口开发神器

    今天推荐的 5 个项目是: magic-api :一款基于 Java 的可视化 HTTP API 接口开发神器. LanguageTool : 一款基于 Java 语言编写的开源语言校正工具. toB ...

  7. Maven-EclipseEE使用Maven构建Java web项目从0到1

    Maven是什么 安装Maven 解压apache-maven-350-binzip 新建变量M2_HOME配置Maven主目录 在 Path 变量中添加 Maven的bin目录 命令窗口mvn -v ...

  8. 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 ...

  9. maven 构建java项目,jdk版本问题

    为什么80%的码农都做不了架构师?>>>    使用maven构建Java项目,默认的 jdk 版本是1.5 详情见官方说明:https://maven.apache.org/plu ...

最新文章

  1. ajax模拟省市级联动,省市区三级联动和ajax模拟请求(示例代码)
  2. 使用POI导出百万级数据到excel的解决方案
  3. 第七天2017/04/14(引用与const、C++基本知识)
  4. 如何获得带时间的ping的结果
  5. java 根据类名示例化类_Java LocalDateTime类| ofInstant()方法与示例
  6. 浅谈JavaScript中forEach与each
  7. 如何只用一个小时定制一个行业AI 模型?
  8. 怎样判断电饭锅温度传感器的好坏?_怎样判断一个线束胶带的好坏?
  9. python模块之re模块
  10. GBA编程和汉化常用软件汇总
  11. 存算一体——后摩尔时代的AI芯片架构
  12. CMSInitiatingOccupancyFraction计算释疑
  13. 2022年凯立德移动导航系统C-Car版 绝对通用车载
  14. 正态性检验(Normality test)
  15. 快递公司面单纸张标准
  16. 74HC573芯片介绍
  17. Android面试之计算机网络基础
  18. supervisor 进程托管程序的使用示例
  19. java计算机毕业设计计算机专业招聘网站源码+mysql数据库+系统+lw文档+部署
  20. c语言打印吉祥图案,中国古代吉祥图案的寓意(二)

热门文章

  1. 7月国内女性时尚行业报告:男性访客降至53.37%
  2. 软件公司美工的地位!
  3. 猪宝宝问题(有符号 无符号类型 整形提升)
  4. Shiro RememberMe 1.2.4 反序列化漏洞(SSV-92180)
  5. socket发送字符串和数组
  6. 线性回归 城市气候与海洋的关系研究
  7. 线性地址转换成物理地址
  8. 三星M2070打印机共享,别的计算机突然打印不了东西,出现打印错误
  9. 网页出现长时间的白屏可能的原因是什么?如何优化?
  10. 社区奖品之Alarm Clock逃跑闹钟