100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > http post java工具类_java实现Http post(参数json格式) get 请求的HttpUtil工具类

http post java工具类_java实现Http post(参数json格式) get 请求的HttpUtil工具类

时间:2020-10-08 07:24:02

相关推荐

http post java工具类_java实现Http post(参数json格式) get 请求的HttpUtil工具类

记录一下自己在项目中需要用到的Http post请求将一个json格式的字符串传到第三方接口中,该接口需获取到传入的字符串,并进行解析。

自己修改后的工具类代码如下:

package com.bosssoft.handler;

import java.io.BufferedReader;

import java.io.ByteArrayInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.PrintWriter;

import mons.httpclient.HttpClient;

import mons.httpclient.methods.InputStreamRequestEntity;

import mons.httpclient.methods.PostMethod;

import mons.httpclient.methods.RequestEntity;

public class HttpRequestUtil {

/**

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

*

* @param url

* 发送请求的 URL

* @param param

* 请求参数,请求参数应该是Json格式字符串的形式。

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

*/

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

PrintWriter out = null;

BufferedReader in = null;

String result = "";

try {

HttpClient client = new HttpClient(); // 客户端实例化

PostMethod postMethod = new PostMethod(url); // 请求方法post,可以将请求路径传入构造参数中

postMethod.addRequestHeader("Content-type", "application/json; charset=utf-8");

byte[] requestBytes = jsonData.getBytes("utf-8"); // 将参数转为二进制流

InputStream inputStream = new ByteArrayInputStream(requestBytes, 0,

requestBytes.length);

RequestEntity requestEntity = new InputStreamRequestEntity(inputStream,

requestBytes.length, "application/json; charset=utf-8"); // 请求体

postMethod.setRequestEntity(requestEntity); // 将参数放入请求体

int i = client.executeMethod(postMethod); // 执行方法

System.out.println("请求状态"+i);

// 这里因该有判断的,根据请求状态判断请求是否成功,然后根据第三方接口返回的数据格式,解析出我们需要的数据

byte[] responseBody = postMethod.getResponseBody(); // 得到相应数据

String s = new String(responseBody);

System.out.println(s);

} 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;

}

}

网上的工具类一般都是可以成功发送值,而我在写程序时,最大的坑就是如何在接口中获取到值,接口获取值的方法如下,记录一下,防止下次踩坑。

image.png

红色部分的注解一定要加!二者缺一不可

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。