java中post推送json格式字符串
最近项目中遇到post推送json格式字符串,之前写过推送json数据,调用失败,才发现是直接推送字符串,只不过字符串是json的格式。
在postman中调用如下:
Java中代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | /** * 发送POST方法的请求 * @param url 发送请求的 URL * @param jsonData 请求参数是Json格式字符串 * @return 响应结果 */ public static String sendPostJsonStr(String url, String jsonData) { PrintWriter out = null ; BufferedReader in = null ; String result = "" ; try { HttpClient client = new HttpClient(); PostMethod postMethod = new PostMethod(url); 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); // 将参数放入请求体 client.executeMethod(postMethod); inputStream = postMethod.getResponseBodyAsStream(); BufferedReader br = new BufferedReader( new InputStreamReader(inputStream)); StringBuffer stringBuffer = new StringBuffer(); String str= "" ; while ((str = br.readLine()) != null ){ stringBuffer.append(str); } result=stringBuffer.toString(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (out != null ) { out.close(); } if (in != null ) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; } |
引用的jar包:commons-httpclient-3.1.jar、commons-logging-1.2.jar、commons-codec-1.9.jar
分类:
java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现