一、发送json

    public void test() throws IOException {
//参数封装------------------------------------------------------
Map<String, Object> jsonMap = new HashMap<String, Object>();
Map<String, Object> params1 = new HashMap<String, Object>();
List<Object> params2=new ArrayList<>();
//封装params1
//封装params2
//封装jsonMap
jsonMap.put("sendBasic", params1);
jsonMap.put("toUsers", params2);
String json = JSON.toJSONString(jsonMap);
//---建立连接---------------------------------------------------------------
URL url = new URL("http://");//请求的路径
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true); // 设置可输入
connection.setDoOutput(true); // 设置该连接是可以输出的
connection.setRequestMethod("POST");// 设置请求方式
connection.setRequestProperty("Charset", "UTF-8");
connection.setRequestProperty("Accept-Charset", "utf-8");
connection.setRequestProperty("Content-Type", "application/json;charset=utf-8"); //发送参数---------------------------------------------------------------------------
BufferedOutputStream pw = new BufferedOutputStream(connection.getOutputStream());
//发送内容转码utf-8 **必写**
pw.write(json.getBytes("UTF-8"));
pw.flush();
pw.close();
//读取响应数据---------------------------------------------------------------------------
//输入流转码utf-8 **必写**
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
String line = null;
StringBuilder result = new StringBuilder();
while ((line = br.readLine()) != null) { // 读取数据
result.append(line + "\n");
}
}

httpUtil工具类

import java.io.*;
import java.net.*; import javax.net.ssl.HttpsURLConnection;
import javax.servlet.http.HttpServletRequest; /**
* http请求工具类
*
*/
public class HttpUtil2 { /**
* @Description
* @Date 15:36 2022-10-13
* @Param String url
* @Param boolean isSSL
* @Param int timeout
* @return java.net.URLConnection
*/
private static URLConnection getConn(String url, boolean isSSL,int timeout){
URL realUrl = null;
URLConnection connection = null;
try {
realUrl = new URL(url);
realUrl.openConnection();// 打开和URL之间的连接
// 开发环境打开和URL之间的连接
// Proxy proxy1 = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("代理ip", 80)); //设置代理
// URLConnection connection = realUrl.openConnection(proxy1);// 打开和URL之间的连接
if (isSSL) {
connection = (HttpsURLConnection) connection;
}
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.setConnectTimeout(timeout);//连接失效时间 1s
connection.connect();
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
} return connection; } public static String get(String url){
return get(url,false);
} /**
* 发送get请求
* @param url 链接地址
* @param isSSL 是否是https协议
* @return 返回响应字符串
*/
public static String get(String url, boolean isSSL) { String result = "";
BufferedReader in = null;
try {
URLConnection connection = getConn(url, false, 1000);
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
} finally {
// 使用finally块来关闭输入流
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
} /**
* 发送get请求
* @param url 链接地址
* @param localPath 保存到本地的全路径
* @param isSSL 是否是https协议
* @return 返回响应字符串
*/
public static String getPic(String url, String localPath,boolean isSSL) { String result = "";
BufferedReader in = null;
try {
URLConnection connection = getConn(url, false, 1000);
InputStream inputStream = connection.getInputStream();
OutputStream outputStream = new FileOutputStream(localPath);
byte[] buffer = new byte[1024];
//每次读取的字符串长度,如果为-1,代表全部读取完毕
int len = 0;
//使用一个输入流从buffer里把数据读取出来
while( (len=inputStream.read(buffer)) != -1 ){
outputStream.write(buffer,0,len);
}
// 关闭输出流
inputStream.close();
outputStream.close(); } catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
} finally {
// 使用finally块来关闭输入流
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
} /**
* 发送post请求
* @param reqUrl
* @param params
* @param isSSL
* @return
*/
public static String post(String reqUrl, String params, boolean isSSL)
{
HttpURLConnection connection = null;
String responseContent = null;
try
{
URL url = new URL(reqUrl);
connection = (HttpURLConnection) url.openConnection();
if (isSSL) {
connection = (HttpsURLConnection) connection;
}
connection.setRequestMethod("POST");
connection.setConnectTimeout(1000);
connection.setDoOutput(true);
connection.setDoOutput(true);
connection.setUseCaches(false);
connection.connect();
OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream(), "utf-8");
osw.write(params);
osw.flush();
osw.close(); InputStream in = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(in));
String tempLine = rd.readLine();
StringBuffer tempStr = new StringBuffer();
String crlf=System.getProperty("line.separator");
while (tempLine != null)
{
tempStr.append(tempLine);
tempStr.append(crlf);
tempLine = rd.readLine();
}
responseContent = tempStr.toString();
rd.close();
in.close();
}
catch (IOException e)
{
System.out.println("发送POST请求出现异常!" + e);
}
finally
{
if (connection != null)
{
connection.disconnect();
}
}
return responseContent;
} /**
* 获取http请求体
* @param request
* @return
* @throws IOException
*/
public static String getHttpBody(HttpServletRequest request) throws IOException{
BufferedReader br = request.getReader(); String str, wholeStr = "";
while((str = br.readLine()) != null){
wholeStr += str;
}
return wholeStr;
} public static void main(String[] args) {
} }

java功能-发送http请求的更多相关文章

  1. java httpclient发送json 请求 ,go服务端接收

    /***java客户端发送http请求*/package com.xx.httptest; /** * Created by yq on 16/6/27. */ import java.io.IOEx ...

  2. java中发送http请求的方法

    package org.jeecgframework.test.demo; import java.io.BufferedReader; import java.io.FileOutputStream ...

  3. 用java代码发送http请求

    //发送post请求 PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL ...

  4. 对于java用发送http请求,请求内容为xml格式

    import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.ByteArrayOutputStr ...

  5. java内部发送http请求并取得返回结果,修改response的cookie

    public Object userLogin(HttpServletRequest request, HttpServletResponse response, String email, Stri ...

  6. java 模拟发送post请求测试

    方法一: HttpClient public void postTest(HttpServletRequest request,Integer type,String phone,String pas ...

  7. java okhttp发送post请求

    java的httpclient和okhttp请求网络,构造一个基本的post get请求,都比py的requests步骤多很多,也比py的自带包urllib麻烦些. 先封装成get post工具类,工 ...

  8. Java HttpURLConnection发送post请求示例

    public static Map<String, Object> invokeCapp(String urlStr, Map<String, Object> params) ...

  9. Java httpClient 发送http请求

    RestTemplate ObjectMapper将string反序列化为WeatherResponse类 RestTemplate通过spring配置注入

  10. Java学习笔记--通过java.net.URLConnection发送HTTP请求

    http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...

随机推荐

  1. 超级详细的Vue安装与配置教程

    原文: https://www.jb51.net/article/251371.htm 超级详细的Vue安装与配置教程   Vue web前端三大主流框架之一,是一套用于构建用户界面的渐进式框架,下面 ...

  2. windows文件夹被占用的解除办法

    1.第一步,按下快捷键组合 ctrl alt del,打开任务管理器窗口,点击上方菜单栏中的性能选项. 2. 第二步,在性能页面下找到打开资源监视器按钮并点击. 3. 第三步,进入资源监视器页面,点击 ...

  3. CentOS 7.9 环境下构建 Python 3.9

    sudo yum -y update sudo yum -y install yum-utils sudo yum-builddep -y python3 curl -O https://www.py ...

  4. 我的vim配置相关

    谨以此文记录下之前的折腾.(后续可能还会折腾什么) 目标 我的目的很简单,就是希望能有一个启动快速的文本编辑器,可以简单的代码着色,vim键位,简单的文本修改,打开大点的文件不发愁,可以简单的form ...

  5. HIVE- lag函数和lead函数

    select date_flag,category_flag,field,LAG(filed, 1) OVER (PARTITION BY category_flag ORDER BY date_fl ...

  6. HTML&CSS学习总结

    目录 一. HTML学习总结 1.HTML是什么 2.HTML结构 1. 创建一个HTML实例 2. HTML结构解析 3. HTML标题 4. HTML段落 5. HTML链接 6. HTML图像 ...

  7. 无感刷新 Token

    什么是JWT JWT是全称是JSON WEB TOKEN,是一个开放标准,用于将各方数据信息作为JSON格式进行对象传递,可以对数据进行可选的数字加密,可使用RSA或ECDSA进行公钥/私钥签名. 使 ...

  8. .什么是 SPA 单页面,它的优缺点分别是什么

    SPA( single-page application )即一个web项目就只有一个页面(即一个HTML文件,HTML 内容的变换是利用路由机制实现的. 仅在 Web 页面初始化时加载相应的 HTM ...

  9. FPGA 原理、结构、开发流程简述

    简介本文主要介绍了博主在阅读天野英晴主编的<FPGA 原理和结构>一书时的读书笔记,方便更好的了解和入门 FPGA.本博客图片均来自于参考文献 [1]. FPGA 特性和粒度FPGA 是一 ...

  10. CH583 是集成 BLE 无线通讯的 RISC-V MCU 微控制器

    CH583 是集成 BLE 无线通讯的 RISC-V MCU 微控制器.片上集成 2Mbps 低功耗蓝牙 BLE 通讯模块.2 个全速 USB 主机和设备控制器及收发器.2 个 SPI.4 个串口.1 ...