社区
Java
帖子详情
怎样写一个类方法,让别人通过url调用并post一个json数据过来????
u012099174
2017-11-22 10:37:56
json数据如下:
...全文
331
4
打赏
收藏
怎样写一个类方法,让别人通过url调用并post一个json数据过来????
json数据如下:
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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请求不就得了
Java基础教程:从入门到实践
本书《Java基础》由Todd Greanier撰
写
,涵盖了Java编程语言的核心概念和技术。书中详细介绍了Java的历史、特点及其与其它语言的比较,并提供了下载和安装Java的指导。读者将学习到Java的基本语法、面向对象编程的基础、异常处理、集合框架等内容。此外,书中还包含大量示例代码和练习题,帮助读者巩固所学知识。通过阅读本书,初学者可以掌握Java编程的基础技能,为未来的深入学习打下坚实的基础。
2018一建《项目管理》考点-施工过程的质量控制.doc
2018一建《项目管理》考点-施工过程的质量控制.doc
2017年网络最流行空间搞笑句子.docx
2017年网络最流行空间搞笑句子.docx
2013年肇庆市国家义务教育课程标准网络全员培训学习心得体会.doc
2013年肇庆市国家义务教育课程标准网络全员培训学习心得体会.doc
【 Vscode配置c / c++环境】VSCode 配置C/C++开发的步骤 入门教程
Visual Studio Code 是由微软开发的一款免费、开源、跨平台的现代化轻量级代码编辑器,自发布以来迅速成为全球开发者最受欢迎的工具之一。它结合了编辑器的轻便性和集成开发环境(IDE)的强大功能,支持多种编程语言和开发场景,核心特点: 1. 跨平台支持 可在 Windows、macOS 和 Linux 上运行,保持一致的用户体验。 2. 轻量级与高性能 启动速度快,占用资源少,适合处理大型项目或低配置设备。 3. 智能代码补全 内置 IntelliSense(智能感知),提供代码提示、参数信息、快速修复等功能,支持 JavaScript、TypeScript、Python、C++ 等主流语言。 4. 内置终端 直接在编辑器内打开集成终端(支持 PowerShell、CMD、Bash 等),方便执行命令行操作。 5. 调试工具 内置调试器,支持断点、变量监视、
调用
堆栈查看等,无需离开编辑器即可调试代码。 6. Git 集成 直接通过侧边栏管理 Git 仓库,支持提交、分支切换、冲突解决等操作。 7. 丰富的扩展生态系统 通过 Extensions Marketplace 可安装数千款插件,扩展功能包括: 语言支持:如 Java、Go、Rust 等。 主题与图标:自定义界面风格。 工具集成:如 Docker、Kubernetes、
数据
库连接等。 效率工具:如 REST Client、Live Server 等。 8. 自定义与主题 支持修改键盘快捷键、界面主题、文件图标等,打造个性化开发环境。 9. 多光标编辑 按住 Alt(Windows/Linux)或 Option(macOS)点击可添加多个光标,同时编辑多处代码。 10. 远程开发支持 通过 Remote - SSH、Remote - Containers 等扩展,可直接连接远程服务器或开发容器,实现无缝协作。
Java
51,397
社区成员
85,848
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章