一、发送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. JavaSE——复杂对象数组练习

    定义一个长度为3的数组,数组存储1~3名学生对象作为初始数据,学生对象的学号,姓名各不相同. 学生的属性:学号,姓名,年龄. 要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断. 要求2 ...

  2. Linux系统实时监控

    命令 top   Top命令用于实时显示process的动态.参数如下:   d:设置显示的更新速度   q:无延迟的显示速度   c:切换显示模式,一共有两种显示模式,一是只显示执行档,另一种是显示 ...

  3. NTP网络时间服务器(时间同步服务器)产品介绍及技术研究分析

    NTP网络时间服务器(时间同步服务器)产品介绍及技术研究分析 目前,市场上的NTP网络时间服务器鱼龙混杂,厂家良莠不齐,对此选择一家有实力的厂家及性价比高的NTP网络时间服务器厂家显得尤其重要. NT ...

  4. 下载接口时出现:Try to run this command from the system terminal. Make sure that you use the correct version of 'pip' installed for your Python interpreter located at 'D:\python\demo\venv\Scripts\...的错误

    下载接口时出现:Try to run this command from the system terminal. Make sure that you use the correct version ...

  5. 关于Java中数组的简单使用

    关于java中数组的简单使用--继java环境配置后的第二篇学习笔记 近期在学习Java的过程中学到了数组的部分,至于为什么我会到数组才来写这个,主要是数组这一章节的内容感觉还是与之前学的C里面的数组 ...

  6. Java-集合概要

    集合概要 Java集合类存放于 java.util 包中,是一个用来存放对象的容器. 集合的两个主要接口是 Collection接口 和 Map 接口. 图片来源:菜鸟教程 集合的优点 区别 集合 数 ...

  7. vue重置data数据为初始状态

    vue中: this.$data 获取当前状态下的data this.$options.data() 获取该组件初始状态下的data 所以,下面就可以将初始状态的data复制到当前状态的data,实现 ...

  8. 快速上手springboot(2)

    简介 Spring程序的缺点: 1.依赖设置繁琐 2.配置繁琐 SpringBoot程序优点 1.起步以来(简化依赖配置) 2.自动配置(简化常用工程相关配置) 3.辅助功能(内置服务器,...) S ...

  9. java-Stream流的常见方法

    一  常见创建流的三种方式 //list集合创建流方式 new ArrayList<>().stream(); new HashSet<>().stream(); //map集 ...

  10. golang 日志

    package log import ( "NOONASN/global" "github.com/natefinch/lumberjack" "go ...