首页 > 其他分享 >HTTP请求使用http、socks代理demo,包含有认证和无认证

HTTP请求使用http、socks代理demo,包含有认证和无认证

时间:2024-05-15 09:57:56浏览次数:18  
标签:body http demo request Hutool 认证 Proxy new

package cn.daenx.myadmin.email.utils;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;

import java.net.*;

/**
 * HTTP请求使用http、socks代理demo,包含有认证和无认证
 *
 * @author DaenMax
 */
public class HttpProxyReqDemo {
    public static void main(String[] args) {
        //Hutool普通请求
        HutoolReq();
        //Hutool使用无认证的代理
        HutoolReqProxy();
        //Hutool使用有认证的代理
        HutoolReqProxyAuth();
        //Java.net使用有认证的代理
        JavaNetReqProxyAuth();
    }

    /**
     * Hutool普通请求
     */
    public static void HutoolReq() {
        HttpRequest request = HttpUtil.createGet("https://www.baidu.com/");
        String body = request.execute().body();
        System.out.println(body);
    }

    /**
     * Hutool使用无认证的代理
     */
    public static void HutoolReqProxy() {
        HttpRequest request = HttpUtil.createGet("https://www.baidu.com/");
        request = request.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7890)));
//        request = request.setProxy(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("mylisg.fun", 36160)));
        String body = request.execute().body();
        System.out.println(body);
    }

    /**
     * Hutool使用有认证的代理
     */
    public static void HutoolReqProxyAuth() {
        Authenticator.setDefault(new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("CRsKrsNzJ0", "5tBgyWKrgy".toCharArray());
            }
        });
        HttpRequest request = HttpUtil.createGet("https://www.baidu.com/");
        request = request.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7890)));
//        request = request.setProxy(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("mylisg.fun", 36160)));
        String body = request.execute().body();
        System.out.println(body);
    }

    /**
     * Java.net使用有认证的代理
     *
     * @throws Exception
     */
    public static void JavaNetReqProxyAuth() {
        Authenticator.setDefault(new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("CRsKrsNzJ0", "5tBgyWKrgy".toCharArray());
            }
        });
        try {
            // 设置代理服务器地址和端口
//            Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 7890));
            Proxy proxy = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("mylisg.fun", 36160));
            // 创建URL对象
            URL url = new URL("https://www.baidu.com/");
            // 打开连接
            HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy);
            connection.setRequestMethod("GET");
            connection.connect();
            int responseCode = connection.getResponseCode();
            System.out.println("Response Code: " + responseCode);
            connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


}

标签:body,http,demo,request,Hutool,认证,Proxy,new
From: https://www.cnblogs.com/daen/p/18193202

相关文章

  • HTTP常见状态码
    HTTP状态码(HTTPStatusCode)是用以标识HTTP响应状态的3位数字代码。它们根据响应类型对出入请求的结果进行分类。以下是一些常见的HTTP状态码以及它们的含义和用途:200OK:请求已成功,请求的资源包含在响应中。201Created:请求已完成并导致新资源的创建。204No......
  • Caddy 服务-- 自动https
    Caddy是一个功能丰富的开源Web服务器,具有自动HTTPS的能力。它被设计为易于使用,并具有现代化的功能和配置选项。以下是Caddy的一些主要特点:自动HTTPS:Caddy可以自动为您的网站提供HTTPS支持,而不需要复杂的配置。它使用Let'sEncrypt来自动获取和管理SSL/TLS证书......
  • Jmeter - BeanSell 后置处理器 结合 HttpClient 使用
    背景:在后置处理器中发送POST请求,请求体为JSON数据疑问:1.如果获取Cookie?2.HttpClient怎么发送POST?3.HttpClient怎么添加Cookie?解决:1.如果获取Cookie?importorg.apache.jmeter.protocol.http.control.CookieManager;importorg.apache.jmeter.protocol.http.control.Coo......
  • idea拉取代码认证失败重新登录
    一、背景在更改了github登录密码后,在本地idea的代码无法正常拉取,显示认证失败却没有弹出重新认证入口。二、目标idea在认证失败之后能够自动弹出认证窗口,进行重新认证。三、实现1、先删除存留在本地的github普通凭据,路径在控制版面→用户账户→凭据管理器下的管......
  • Charles 代理https请求
    起因需要调用一个https服务,获取token,再携带token调用对应系统发送报文。在postman测试中,token可以正常获取,携带token并发送GET请求也可以正常发送请求返回数据。但是在应用程序使用中发现GET请求始终无法调用成功,response状态码405。应用使用HttpURLConnection进行请求,后续删除......
  • http及https模拟工具使用总结及客户端及服务端模拟代码样例
      一、工具介绍1、restclient-1.2.jar为客户端请求工具,可以调用任何的http及https的服务,可以任意调用https的网页地址(比入百度等)及postman模拟的服务。 2、HttpMockServerTool.jar只能模拟http的服务端,不能模拟https的。 需要自己造个返回响应文档 1.txt使用参考......
  • Redis配置登录密码并使用认证密码登录
    Redis配置登录密码并使用认证密码登录1.修改配置文件Redis的配置文件redis.conf,找到如下行:#requirepassfoobared去掉注释,并修改为所需要的密码:requirepass123456(其中123456就是要设置的密码)2.重启Redis如果Redis已经配置为service服务,可以通过以下方式重启:serviceredis......
  • npm install 报错 ---》npm ERR! request to https://registry.npmjs.org/react faile
    1、npminstall报错E:\wsg\AWC_TEST\stage>npminstallreactreact-domnpmERR!codeCERT_NOT_YET_VALIDnpmERR!errnoCERT_NOT_YET_VALIDnpmERR!requesttohttps://registry.npmjs.org/reactfailed,reason:certificateisnotyetvalidnpmERR!Acomplete......
  • HTTP 连接详解
    概述世界上几乎所有的HTTP通信都是由TCP/IP承载的,客户端可以打开一条TCP/IP连接,连接到任何地方的服务器。一旦连接建立,客户端和服务器之间交换的报文就永远不会丢失、受损或失序TCP(TransmissionControlProtocol)传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层......
  • Blazor WebAssembly使用 AuthenticationStateProvider 自定义身份认证
    本文章以客户端基础,实现类似后台系统,进入后台控制台页面需要经过登录身份验证才可访问情况简单来时就是实现前后端分离,前端通过token和用户信息进行身份认证,或者在 AuthenticationStateProvider 实现方法 GetAuthenticationStateAsync 中调用后台接口进行身份验证安装依......