社区
Java
帖子详情
怎样写一个类方法,让别人通过url调用并post一个json数据过来????
u012099174
2017-11-22 10:37:56
json数据如下:
...全文
343
4
打赏
收藏
怎样写一个类方法,让别人通过url调用并post一个json数据过来????
json数据如下:
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
u012099174
2017-11-23
打赏
举报
回复
我是想了解怎样实现这个可被别人调用的URL,
qq_20932723
2017-11-22
打赏
举报
回复
刚好项目写了一个,献给楼主(多给点分哈): import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import org.springframework.util.StringUtils; public class HttpUtils { /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求Map参数,请求参数应该是 {"name1":"value1","name2":"value2"}的形式。 * @param charset * 发送和接收的格式 * @return URL 所代表远程资源的响应结果 */ @SuppressWarnings("rawtypes") public static String sendGet(String url, Map<String,Object> map,String charset){ StringBuffer sb=new StringBuffer(); //构建请求参数 if(map!=null&&map.size()>0){ Iterator it=map.entrySet().iterator(); //定义迭代器 while(it.hasNext()){ Map.Entry er= (Entry) it.next(); sb.append(er.getKey()); sb.append("="); sb.append(er.getValue()); sb.append("&"); } } return sendGet(url,sb.toString(), charset); } /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求Map参数,请求参数应该是 {"name1":"value1","name2":"value2"}的形式。 * @param charset * 发送和接收的格式 * @return URL 所代表远程资源的响应结果 */ @SuppressWarnings("rawtypes") public static String sendGetSnms(String url, Map<String,Object> map,String charset){ StringBuffer sb=new StringBuffer(); //构建请求参数 if(map!=null&&map.size()>0){ Iterator it=map.entrySet().iterator(); //定义迭代器 while(it.hasNext()){ Map.Entry er= (Entry) it.next(); sb.append(er.getKey()); sb.append("="); sb.append(er.getValue()); sb.append("&"); } } return sendGet(url,"data="+sb.toString(), charset); } /** * 向指定URL发送POST方法的请求 * * @param url * 发送请求的URL * @param param * 请求Map参数,请求参数应该是 {"name1":"value1","name2":"value2"}的形式。 * @param charset * 发送和接收的格式 * @return URL 所代表远程资源的响应结果 */ public static String sendPost(String url, Map<String,Object> map,String charset){ StringBuffer sb=new StringBuffer(); //构建请求参数 if(map!=null&&map.size()>0){ for (Entry<String, Object> e : map.entrySet()) { sb.append(e.getKey()); sb.append("="); sb.append(e.getValue()); sb.append("&"); } } return sendPost(url,sb.toString(),charset); } /** * 向指定URL发送POST方法的请求 * * @param url * 发送请求的URL * @param param * 请求Map参数,请求参数应该是 {"name1":"value1","name2":"value2"}的形式。 * @param charset * 发送和接收的格式 * @return URL 所代表远程资源的响应结果 */ public static String sendPostSnms(String url, Map<String,Object> map,String charset){ return sendPost(url,"data="+AjaxUtils.toCustom(map),charset); } /** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @param charset * 发送和接收的格式 * @return URL 所代表远程资源的响应结果 */ public static String sendGet(String url, String param,String charset) { String result = ""; String line; StringBuffer sb=new StringBuffer(); BufferedReader in = null; try { String urlNameString = url ; if(!StringUtils.isEmpty(param)) urlNameString+= "?" + param; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 设置请求格式 conn.setRequestProperty("contentType", charset); conn.setRequestProperty("content-type", "application/x-www-form-urlencoded"); //设置超时时间 conn.setConnectTimeout(30*1000); conn.setReadTimeout(30*1000); // 建立实际的连接 conn.connect(); // 定义 BufferedReader输入流来读取URL的响应,设置接收格式 in = new BufferedReader(new InputStreamReader( conn.getInputStream(),charset)); while ((line = in.readLine()) != null) { sb.append(line); } result=sb.toString(); } 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 * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @param charset * 发送和接收的格式 * @return 所代表远程资源的响应结果 */ public static String sendPost(String url, String param,String charset) { PrintWriter out = null; BufferedReader in = null; String result = ""; String line; StringBuffer sb=new StringBuffer(); try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 设置请求格式 conn.setRequestProperty("contentType", charset); conn.setRequestProperty("content-type", "application/x-www-form-urlencoded"); //设置超时时间 conn.setConnectTimeout(30*1000); conn.setReadTimeout(30*1000); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8")); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 设置接收格式 in = new BufferedReader( new InputStreamReader(conn.getInputStream(),charset)); while ((line = in.readLine()) != null) { sb.append(line); } result=sb.toString(); } 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; } }
师傅是个奇怪的蛋
2017-11-22
打赏
举报
回复
就是一个简单的servlet吧,也可以用框架写
李德胜1995
2017-11-22
打赏
举报
回复
springmvc写一个方法,另一边HttpClient post json请求不就得了
光伏阵列常见故障仿真模型(Simulink仿真实现)
光伏阵列常见故障仿真模型(Simulink仿真实现)
基于量化分析的股票市场预测系统.zip
量化交易
基于 PLC 梯形图的四站点呼叫小车(记忆队列 + 先呼先达)实现详解
基于 PLC 梯形图的四站点呼叫小车(记忆队列 + 先呼先达)实现详解
基于微信小程序的求职招聘系统
基于微信小程序的求职招聘系统
Python
数据
分析可视化实战教程:从
数据
清洗到交互式图表完整源码
本资源包提供了
一个
完整的Python
数据
分析可视化实战项目,涵盖从
数据
采集、清洗、分析到可视化展示的全流程。通过实际案例,详细讲解如何使用Pandas进行
数据
处理,Matplotlib和Seaborn绘制静态图表,以及Plotly创建交互式可视化。项目包含完整的源码和
数据
集,适合
数据
分析初学者和进阶开发者学习,帮助快速掌握
数据
可视化核心技能,提升
数据
分析报告的专业性和表现力。
Java
51,410
社区成员
85,982
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章