一、发送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. 使用elemeng-plus控制台报错:$weight

    使用element-plus最开始按需使用,加入的组件少没有问题,但组件引入多了以后发现控制台会报下面的警告: Deprecation Warning: $weight: Passing a numb ...

  2. maven项目pom.xml报未找到指定路径文件

    解决方法: 错误环境:Tomcat7 + Eclipse + Maven + Spring + SpringMvc + Mybatis 错误描述: 错误解决步骤: 1.找到eclipse的projec ...

  3. 在pycharm中安装虚拟环境

    1.安装python解释器 2.安装pytorch (1)查看当前虚拟环境 conda env list (2)进入自己的虚拟环境 source activate SCI(自己的虚拟环境名字) (3) ...

  4. 跨平台Docker篇

    前言 总结自 老张的哲学b站视频[10分钟学会Blog.Core(ASP.NETCORE)基本完结]https://www.bilibili.com/video/BV1vC4y1p7Za?vd_sou ...

  5. JVM相关总结

    https://www.cnblogs.com/jiangym/p/15885161.html JVM内存模型(JMM) 根据代码画出下面的JVM内存模型 public class Math { pu ...

  6. 在sublime text 3中编译javascript

    1.整理步骤: 1).安装node.js: 2).配置js编译系统: 2.过程 1).先是按照网上的方法,在配置的时候输入如下内容: {"cmd": ["node&quo ...

  7. vue2实现tabs侧边导航栏点击内容跳转到对应位置,且内容滚动导航栏切换对应tab

    vue2实现tabs侧边导航栏点击内容跳转到对应位置,且内容滚动导航栏切换对应tab 1.tabs使用了 element的插件tabs, 省的自己写滑动动画 2.左侧有用到了 element的插件 N ...

  8. STP理论基础

    目的 防止二层环路及防止环路造成的广播风暴以及引起的MAC表震荡 方法 首先,所有配置了STP的交换机互相向相邻交换器(配置了STP的)发送BPDU(协议数据单元),选举根桥(根交换机),根交换机上所 ...

  9. Micro-OA系统

    Micro-OA简单描述 MicroOA是一款不需要专业的开发知识或开发经验,通过页面交互式即可实现动态搭建表单的微型办公自动化系统.在日常工作当中,我们面临着各种各样的表单,在开发系统时,若我们采用 ...

  10. AXI VALID READY 握手机制

    1. VAILD 和READY 传输方向 2. VAILD 和READY依赖关系 前面说到AXI的五个通道是独立的,但通道间必须保持一定的约定关系:写回复必须在一次写事务的最后一个写数据之后读数据必须 ...