简易版Http请求工具

一键搭建本地HTTP服务器的简易工具 在现代开发与测试环境中,快速搭建一个轻量级的 HTTP 文件服务器已成为许多开发者、运维人员以及测试人员的刚需。HTTP File Server(简称 HFS)正是一款满足这一需求的工具。它不仅轻量便携、易于部署,还提供了丰富的功能来支持文件共享、网页托管以及多协议访问等用途。本章将从 HFS 的起源与特点出发,逐步介绍其功能模块,并分析其在实际场景中的适用性。HTTP File Server(HFS)最初由意大利开发者 Rejetto 开发,其设计初衷是为了解决局域网内快速共享文件的需求。 阅读详情

简易版Http请求工具

这里的联网应用程序使用java.net包下的URL/HttpURLConnection类实现get/post请求

1、创建一个RUL对象

URL url = new URL(reqUrl);

2、获取URLConnection实例,与URL引用的远程对象的连接。

HttpURLConnection conn = (HttpURLConnection)url.openConnection();

3、HttpURLConnection打开指向此引用的资源的通信链接

conn.connect();

4、从此打开的连接读取的输入流。

conn.getInputStream()

5、处理输入流
根据业务处理输入流

GET请求

关键代码

public static String doGet(URL url, String encoding) throws IOException {
    BufferedReader reader = null;
    HttpURLConnection conn = null;
    try {
        conn = (HttpURLConnection)url.openConnection();
        setConnectionParameter("GET", conn);
        setHeader(encoding, conn);
        conn.connect();
        reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), encoding));
        return getResult(reader);
    } catch (IOException e) {
        e.printStackTrace();
        throw new RuntimeException(e);
    } finally {
        if (reader != null){
            reader.close();
        }
        if (conn != null){
            conn.disconnect();
        }
    }
}

POST请求

关键代码

public static String doPost(URL url, Map<String, String> params, String encoding) throws IOException {
    DataOutputStream out = null;
    BufferedReader reader = null;
    HttpURLConnection conn = null;
    try {
        conn = (HttpURLConnection)url.openConnection();
        setConnectionParameter("POST", conn);
        setHeader(encoding, conn);
        conn.connect();
        if ((null != params) && (!params.isEmpty())) {
            out = new DataOutputStream(conn.getOutputStream());
            String stringParams = buildParams(params);
            out.write(stringParams.getBytes());
            out.flush();
        }
        reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), encoding));
        return getResult(reader);
    } catch (Exception e) {
        throw new RuntimeException(e);
    } finally {
        if (reader != null){
            reader.close();
        }
        if (out != null){
            out.close();
        }
        if (conn != null){
            conn.disconnect();
        }
    }
}

完整代码

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

public class HttpUtils {

    private static final String CHARSET = "UTF-8";

    public static String doGet(String reqUrl) throws IOException {
        return doGet(reqUrl, CHARSET);
    }

    public static String doGet(String reqUrl, String encoding) throws IOException {
        URL url = new URL(reqUrl);
        return doGet(url, encoding);
    }

    public static String doGet(URL url, String encoding) throws IOException {
        BufferedReader reader = null;
        HttpURLConnection conn = null;
        try {
            conn = (HttpURLConnection)url.openConnection();
            setConnectionParameter("GET", conn);
            setHeader(encoding, conn);
            conn.connect();
            reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), encoding));
            return getResult(reader);
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally {
            if (reader != null){
                reader.close();
            }
            if (conn != null){
                conn.disconnect();
            }
        }
    }

    public static String doPost(String reqUrl, Map<String, String> params) throws IOException {
        return doPost(reqUrl, params, CHARSET);
    }

    public static String doPost(String reqUrl, Map<String, String> params, String encoding) throws IOException {
        URL url = new URL(reqUrl);
        return doPost(url, params, encoding);
    }

    public static String doPost(URL url, Map<String, String> params, String encoding) throws IOException {
        DataOutputStream out = null;
        BufferedReader reader = null;
        HttpURLConnection conn = null;
        try {
            conn = (HttpURLConnection)url.openConnection();
            setConnectionParameter("POST", conn);
            setHeader(encoding, conn);
            conn.connect();
            if ((null != params) && (!params.isEmpty())) {
                out = new DataOutputStream(conn.getOutputStream());
                String stringParams = buildParams(params);
                out.write(stringParams.getBytes());
                out.flush();
            }
            reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), encoding));
            return getResult(reader);
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
            if (reader != null){
                reader.close();
            }
            if (out != null){
                out.close();
            }
            if (conn != null){
                conn.disconnect();
            }
        }
    }

    /**
     * 设置连接参数
     * @param method
     * @param conn
     * @throws IOException
     */
    private static void setConnectionParameter(String method, HttpURLConnection conn) throws IOException {
        conn.setDoOutput(true);
        conn.setDoInput(true);
        conn.setInstanceFollowRedirects(true);
        conn.setConnectTimeout(1000*10);
        conn.setReadTimeout(1000*10);
        conn.setRequestMethod(method);
    }

    /**
     * 设置请求属性
     * @param encoding
     * @param conn
     */
    private static void setHeader(String encoding, HttpURLConnection conn) {
        conn.setRequestProperty("Connection", "Keep-Alive");
        conn.setRequestProperty("accept-language", "zh_CN");
        conn.setRequestProperty("Charset", encoding);
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        //伪装浏览器
        conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36");
    }

    private static String getResult(BufferedReader reader) throws IOException {
        StringBuffer buff = new StringBuffer();
        String line = reader.readLine();
        while (line != null) {
//            buff.append("\n"+ line);
            buff.append(line);
            line = reader.readLine();
        }
        String result = buff.toString();
        return result;
    }

    private static String buildParams(Map<String, String> params) {
        if (null == params || params.isEmpty()){
            return "";
        }
        StringBuilder sb = new StringBuilder();
        int i = 0;
        for (Map.Entry entry : params.entrySet()) {
            if (i > 0){
                sb.append("&");
            }
            sb.append((String)entry.getKey());
            sb.append("=");
            sb.append((String)entry.getValue());
            i++;
        }
        return sb.toString();
    }

}
http自动发送请求工具(自动化测试http请求) 在现代软件开发过程中,HTTP 请求的自动化测试是确保应用程序稳定性和可靠性的关键环节。为了满足这一需求,我开发了一款功能强大且易于使用的自动化 HTTP 请求发送工具。该工具基于 C# 开发,集成了项目管理、接口管理、日志查看等功能,能够高效地模拟各种 HTTP 请求场景。以下将详细介绍该软件的功能特点和使用方法。 阅读详情

相关推荐

Matlab2018a崩溃解决的办法No sandbox or build area path

Matlab 2018a (No sandbox or build area path)出现崩溃后需要使用terminal进行如下操作: cd /home/david/MySoft/MATLAB/R2018a/bin/glnxa64 (你的matlab路径) mkdir exclude mv libfreetype* exclude/ 执行后图片如下: 如果你用的Windows系统,请手动按照上面步骤剔除了dll。 Matlab 2018a (No sandbox or build are

David Xiao 1万+

简单好用http客户端工具--httpgo

简单好用的http请求客户端工具!

weixin_49021852的博客 741

【校园网代理连接问题】已解决,“该设备或资源(Web 代理)未设置为接受端口“7890”上的连接“

我遇到这个问题很多次。每次都是vpn的问题,不止通俗意义上的梯子(clash之类的),还包括校园网vpn。点击“ 拨号和虚拟专用网络设置”中的“设置”, 关闭代理服务器。在打开vpn后或者关闭vpn后无法浏览网页,网页诊断显示“关闭“手动设置代理”中的“使用代理服务器”,关闭对应的本地代理即可。

聆雨。 1万+

简单http请求工具类

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace Company.Common.Utils { public static class HttpUtils { public static string Ge

mu_sang的博客 223

Windows系统下com0com虚拟串口安装与驱动签名禁用全攻略

本文详细介绍了在Windows系统下安装com0com虚拟串口工具的全过程,包括驱动签名问题的解决方法。通过禁用驱动程序强制签名,用户可以顺利安装并使用这款开源工具创建虚拟串口对,适用于软件开发测试、硬件调试等场景。文章还提供了验证虚拟串口功能的实用技巧和常见问题解决方案。

weixin_28720573的博客 386

六款经典限流保护电路设计:从原理到实战的完整指南

在电子系统设计中,过流保护是确保电路可靠运行的基础技术。其核心原理是通过电流采样、比较与执行三个环节构成闭环控制,将不可见的电流转化为可测量的电压信号进行处理。这项技术的核心价值在于防止因短路、堵转或异常负载导致的元器件损坏,从而提升整个系统的稳定性和安全性。在电源管理、电机驱动和精密仪器等应用场景中,限流保护电路都是不可或缺的安全屏障。本文深入解析了基于运放和晶体管搭建的经典方案,并重点探讨了采样电阻选型、参考电压生成以及PCB布局中的开尔文连接等工程实践要点,帮助读者从热门的DIY项目到工业控制都能实现

weixin_29166013的博客 352

常用工具之http请求,支持restful风格常用请求

由于平时开发中习惯使用postman进行接口测试,在接触后端直接请求时,市面上未找到符合使用习惯的请求工具,故此在apache http请求工具的基础上做了一些封装,能够覆盖日常物联网开发中的大部分使用场景,支持多种身份认证、请求连接管理、多种响应接收等。

xx_shawn的博客 1109

win10任务栏文件夹设置成竖形列表样式

win10任务栏文件夹设置成竖形列表样式

ftzchina的博客 7079

JAVA http请求工具类

指定请求头自定义Cookie(cookie方法)指定是否keepAlive(keepAlive方法)指定表单内容(form方法)指定请求内容,比如rest请求指定JSON请求体(body方法)超时设置(timeout方法)指定代理(setProxy方法)指定SSL协议(setSSLProtocol)简单验证(basicAuth方法)很多时间受限于项目,开发环境,还是必须自己封装http,下边就这几贴代码了/**

拾一二的博客 3万+

Python程序—定子故障三相永磁同步电动机振动与电流数据集

1.0 kW 电机匝间短路故障数据: 正常匝间短路振动数据: 匝间短路故障,严重度为2.26%: 匝间短路故障,严重度为2.70%: 匝间短路故障,严重度为3.35%: 匝间短路故障,严重度为4.41%: 匝间短路故障,严重度为6.48%: 匝间短路故障,严重度为12.17%: 匝间短路故障,严重度为21.69%1.5 kW 电机匝间短路故障数据: 正常匝间短路振动数据: 匝间短路故障,严重度为1.57%: 匝间短路故障,严重度为1.88%: 匝间短路故障,严重度为2.34%

m0_66465741的博客 1320

探秘RK3588:OverlayFS挂载与固件升级全攻略

本文围绕RK3588芯片的OverlayFS文件系统挂载与固件升级技术展开详细阐述。首先介绍了RK3588芯片的卓越性能及其在嵌入式领域的广泛应用,重点分析了OverlayFS文件系统的分层架构原理及其在RK3588设备上的挂载方法,包括详细的挂载步骤、常见问题解决方案。随后详细阐述了RK3588设备在Windows和Linux环境下的固件升级方案,涵盖升级准备、具体操作流程及故障处理等内容。最后通过智能安防监控设备的实际案例,展示了OverlayFS挂载与固件升级技术的应用效果。文章为嵌入式开发者提供了全

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 286

最简单的方式使用原生 js 发送 http 请求

使用场景 检查接口可用性 主要用于在没有引入 jQuery 等工具的页面上需要验证一些 api 能否调得通的时候,可以快速调出浏览器调试界面发请求。 这在判断是否存在跨域问题的场景下,特别好用。 验证接口用于爬虫 另外,因为在浏览器调试界面发起的请求跟页面自身的 js 发起的请求是一样的,所以可以不用关心登录状态等上下文环境的问题。这在写爬虫的时候特别实用——抓到一个链接之后,直接在浏览器上进行验...

dadiyang的博客 1万+

103:vue+cesium 设置球体水部分颜色为黄色

本示例在 Vue + cesium 项目中设置球体水部分颜色为黄色。这里的操作是将球体内部设置为空的,在地球内部添加一个黄色的圆球,这样水的部分就被突出出来了。直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果.

大剑师兰特的GIS世界 623

Python HTTP 请求工具类 HttpUtils:简化 HTTP 请求的高效工具

这篇 优快云 博客聚焦 Python 的 HttpUtils 工具类。开篇点明在多领域开发中,高效 HTTP 请求处理至关重要,引出工具类。核心内容详述其功能:基础请求方法含 GET、POST 等,各附实例,如天气查询、电商操作;还有智能适配的 send_request 方法。示例实战涵盖数据、Web 后端场景,展示用法。结尾总结工具类提效、降复杂度优势,鼓励开发者运用并交流,助其畅游 HTTP 请求世界。

Fink-Go小码的博客 2095

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Http请求-hutool工具类的使用

工具类的使用

三横同学的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Http请求工具【添加请求头】

文章目录一、工具代码: 一、工具代码: package *.*; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.CloseableHttpResponse; import ...

YangzaiLeHeHe的博客 4015

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Http请求工具类

HttpUtil.java package com.jrbac.util; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.http.Consts; import

TinnnnnnY 6945

java的http请求工具对比

在Java开发中,发起HTTP请求是常见的任务。为了简化这一过程,开发者们使用了各种不同的HTTP客户端库。OkHttpFeign和,并对比它们的异同点,列出各自的优势和劣势,以及适用场景。

qq_34319145的博客 2452

Java工具类——Http请求工具类

package com.runan.utils; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.ne...

RobinsStruggle的博客 3299

java http请求工具类

1.下载maven包&lt;!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --&gt; &lt;dependency&gt; &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt; &lt;artifactId&gt;h...

qq_32403351的博客 3279

在Mac上,你可以使用Paw HTTP Client for Mac作为HTTP POST请求工具来发送HTTP请求

Paw是一款强大的HTTP客户端工具,它不仅支持常见的HTTP方法,如GET、POST、PUT和DELETE,还额外提供了其他高级选项,比如HEAD、PATCH和OPTIONS。在Paw(Mac版Postman的替代品)中,你可以创建并保存自定义的HTTP头模板来简化重复的请求配置。: 点击"Body"区域下方的"+",可以选择"JSON"或"Form Data"来添加POST的数据,比如键值对。: 点击顶部菜单栏的"+“图标,选择"新建”,然后选择"GET"、"POST"或其他你常使用的HTTP方法。

[Blog][Domain] programb.blog.youkuaiyun.com 1220

HTTP请求工具类(POST)

HTTP请求工具类 POST请求 package com.cuierdan.utils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; i.

崔二旦 1787

httpcat:简单实用的命令行 HTTP 请求构建工具

httpcat:简单实用的命令行 HTTP 请求构建工具 项目介绍 httpcat 是一个用于在命令行上构建原始 HTTP 请求的简便工具。在服务器问题调试、无效 HTTP 请求处理测试或了解 HTTP 内部工作原理等场景下,该工具显得尤为有用。与 httpie、curl 或 wget 等高级别 CLI HTTP 客户端相比,httpcat 提供了更直接的 HTTP 请求构建方法,避免了抽象层,使...

gitblog_00127的博客 879

【Java】HTTP请求工具类

在工作中可能存在要去调用其他项目的接口,这篇文章我们实现在Java代码中实现调用其他项目的接口。创建一个携带参数的POST请求,去请求其他项目的接口并返回数据。附加HTTP请求工具类,包含(GET、POST、无参GET、无参POST)

Syals的博客 6162
上一篇: MyCat加MySQL实现读写分离,故障转移
下一篇: JAVA池化技术
l_learning
博客等级 码龄8年 15粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值