JAVA发送json格式http请求(POST,GET)

2023-05-16

代码如下:

HttpRequest.java文件

package httptest;

 

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.URL;

import java.net.URLConnection;

import java.util.List;

import java.util.Map;

 

public class HttpRequest {

/**

* 向指定URL发送GET方法的请求

*

* @param url

* 发送请求的URL

* @param param

* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。

* @return URL 所代表远程资源的响应结果

*/

public static String sendGet(String url, String param) {

String result = "";

BufferedReader in = null;

try {

String urlNameString = url + "?" + param;

URL realUrl = new URL(urlNameString);

// 打开和URL之间的连接

URLConnection connection = realUrl.openConnection();

// 设置通用的请求属性

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.connect();

// 获取所有响应头字段

Map<String, List<String>> map = connection.getHeaderFields();

// 遍历所有的响应头字段

for (String key : map.keySet()) {

System.out.println(key + "--->" + map.get(key));

}

// 定义 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);

e.printStackTrace();

}

// 使用finally块来关闭输入流

finally {

try {

if (in != null) {

in.close();

}

} catch (Exception e2) {

e2.printStackTrace();

}

}

return result;

}

 

/**

* 向指定 URL 发送POST方法的请求

*

* @param url

* 发送请求的 URL

* @return 所代表远程资源的响应结果

*/

public static String sendPost(String url, String param) {

PrintWriter out = null;

BufferedReader in = null;

String result = "";

try {

URL realUrl = new URL(url);

// 打开和URL之间的连接

URLConnection conn = realUrl.openConnection();

// 设置通用的请求属性

conn.setRequestProperty("accept", "*/*");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("user-agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

// 发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

// 获取URLConnection对象对应的输出流

out = new PrintWriter(conn.getOutputStream());

// 发送请求参数

out.print(param);

// flush输出流的缓冲

out.flush();

// 定义BufferedReader输入流来读取URL的响应

in = new BufferedReader(

new InputStreamReader(conn.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

result += line;

}

} catch (Exception e) {

System.out.println("发送 POST 请求出现异常!"+e);

e.printStackTrace();

}

//使用finally块来关闭输出流、输入流

finally{

try{

if(out!=null){

out.close();

}

if(in!=null){

in.close();

}

}

catch(IOException ex){

ex.printStackTrace();

}

}

return result;

}

}

 

test.java文件:

package httptest;

import net.sf.json.JSONObject;

 

 

public class test {

public static void main(String[] args) {

//发送 GET 请求

String s=HttpRequest.sendGet("http://localhost:7050/chain", null);

System.out.println(s);

JSONObject jsonObject = new JSONObject();

jsonObject.put("jsonrpc", "2.0");

jsonObject.put("method","query");

jsonObject.put("params", "{'chaincodeID':{'name':'fscs'},'ctorMsg': {'args':['query','Bob']}}");

jsonObject.put("id", 5);

String transJson = jsonObject.toString();

System.out.println(transJson);

//发送 POST 请求

String sr=HttpRequest.sendPost("http://localhost:7050/chaincode",transJson);

System.out.println(sr);

}

 

}

 

-----------------------------------------------------------------分割线----------------------------------------------------------------

注意在test.java文件中要用到 JSONObjec类,需要导入net.sf.json.JSONObject包,所需要的jar包如下:

json所需要的jar包如下:

json-lib-2.3-jdk15.jar

json所依赖的jar如下:

commons-beanutils-1.8.0.jar

commons-collections-3.2.1.jar

commons-lang-2.4.jar

commons-logging-1.1.jar

ezmorph-1.0.6.jar

(以上的jar包组合,亲测可用)

注:一定要注意各相关jar包的版本问题,我曾经因为版本的问题困扰了两天。

-----------------------------------------------------------------分割线----------------------------------------------------------------

把jar包下载下来导入到项目中就行。

运行截图:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA发送json格式http请求(POST,GET) 的相关文章

随机推荐

  • Docker not running on windows 10 error: Hardware assisted virtualization and data execution protecti

    Docker not running on windows 10 error Hardware assisted virtualization and data execution protection must be enabled in
  • [高通SDM450][Android9.0]user版本uartlog常开

    文章目录 开发平台基本信息问题描述解决方法user版本调试串口可输入user版本uartlog常开 开发平台基本信息 芯片 SDM450 版本 Android 9 0 kernel msm 4 9 问题描述 user版本调试串口默认只输入调
  • Ubuntu 7.04 乱码解决

    一 解决XMMS乱码问题 菜单乱码的解决 1 sudo ln s etc gtk gtkrc zh CN etc gtk gtkrc zh CN utf 8 2 sudo gedit etc gtk gtkrc zh CN utf 8 填写
  • yii2连接websocket服务实现服务端主动推送消息给客户端

    上一篇写的是websocket的服务 xff0c 这一篇写写调用服务和web端调用 xff0c 接收消息部分 1 调用websocket服务 主动推送消息的方法 lt php namespace common services use co
  • 生产者消费者算法

    span class hljs comment include lt unistd h gt span span class hljs comment include lt stdlib h gt span span class hljs
  • MongoDB ODM 框架MongoMongo-简化你的数据存储

    MongMongo是一个用Java写的ODM框架 xff0c 使得对MongoDB的操作更加便捷 MongoMongo努力为Java开发者提供类似于ActiveORM 或者 Hibernate的操作API 并且保留了MongoDB的sche
  • archlinux安装deb软件步骤

    archlinux安装deb软件步骤 步骤 步骤 安装yay安装debtap安装转换出的pkg软件 注意事项 xff1a 安装yay问题解决 xff1a go语言相关安装debtap问题解决 xff1a git代理设置
  • 第六章 正则,BeautifulSoup,xpath

    文章目录 1 正则1 1 提取字符串1 2 替换1 3 搜索 2 beautifulsoup2 1 各种解析器2 2 提取方式2 3 find方法2 3 1 find2 3 2 find all2 3 3 通过id和类型精确定位2 3 3
  • spring如何获取bean的6种方法,你知道几个?

    spring获取bean的6种方法 Bean工厂 xff08 com springframework beans factory BeanFactory xff09 是Spring框架最核心的接口 xff0c 它提供了高级IoC的配置机制
  • c语言中while与do while循环的主要区别是什么

    while循环与do while循环的区别如下 xff1a 1 循环结构的表达式不同 while循环结构的表达式为 xff1a while xff08 表达式 xff09 循环体 xff1b do while循环结构的表达式为 xff1a
  • MVC设计模式

    MVC的全名是Model View Controller xff0c 是模型 Model xff0d 视图 view xff0d 控制器 controller 的缩写 xff0c 是一种设计模式 它是用一种业务逻辑 数据与界面显示分离的方法
  • MVC 模式及其优缺点

    一 MVC 原理 MVC 是一种程序开发设计模式 它实现了显示模块与功能模块的分离 提高了程序的可维 护性 可移植性 可扩展性与可重用性 xff0c 降低了程序的开发难度 它主要分模型 视图 控制器三层 1 模型 model 它是应用程序的
  • MVC 模式及其优缺点

    一 MVC 原理 MVC 是一种程序开发设计模式 它实现了显示模块与功能模块的分离 提高了程序的可维 护性 可移植性 可扩展性与可重用性 xff0c 降低了程序的开发难度 它主要分模型 视图 控制器三层 1 模型 model 它是应用程序的
  • MyBatis生命周期2的过程(最终)?

    首先加载mybatis config xml总配置文件 xff0c 根据development的参数配置连接数据库 xff1b 查询mappers映射关系 xff0c 找到mapper xml配置文件 执行mapper xml文件 xff0
  • spring boot使用redis做数据缓存

    1 添加redis支持 在pom xml中添加 1 lt dependency gt 2 lt groupId gt org springframework boot lt groupId gt 3 lt artifactId gt spr
  • Springboot配置支持Redis实例

    思路 xff1a 既然使用redis就要添加redis依赖 xff0c redis是 lt key value gt 的存储方式 xff0c 支持字符串存储 有了jar包 xff0c 就要把我们的数据存进去 xff0c 读出来 redis不
  • 【深度学习】显卡驱动, cuda, cudnn的关系与版本对应问题

    转载自 xff1a https blog csdn net weixin 39673002 article details 113053729 仅作学习记录 文章目录 显卡驱动cuda与cudnncudnncuda 建议 这四者从底层 xf
  • Spring Boot使用redis做数据缓存

    1 添加redis支持 在pom xml中添加 lt dependency gt lt groupId gt org springframework boot lt groupId gt lt artifactId gt spring bo
  • 发现三本不错的讲解数据存储的书

    研究数据存储 xff0c 没有很多现成的东西 xff0c 但是可以参考数据库系统的存储实现的内容 xff0c 发现三本书 xff0c 觉得值得一读 数据库系统全书 http www china pub com computers commo
  • JAVA发送json格式http请求(POST,GET)

    代码如下 xff1a HttpRequest java文件 package httptest import java io BufferedReader import java io IOException import java io I