HttpRequest Java原生代码封装
HttpRequest Java原生代码封装 get提交 post提交
name1=value1&name2=value2 的形式 json形式两种形式
package com.beisun.mbp.mbp.controller;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* @param param* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。* @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("Content-Type", "application/json");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;} }
转载于:https://www.cnblogs.com/nmdzwps/p/6715193.html
HttpRequest Java原生代码封装相关推荐
- Java原生代码连接MySQL数据库
本章我们介绍, 如何用java原生代码实现连接MySQL数据库并实现基本的增,删,改,查操作. 为了便于演示,首先我们使用Navicat Premium新建一个user表并添加如下数据: ...
- rabbitmq java代码_RabbitMQ java 原生代码
rabbitMQ 的交换器有四种类型:direct.fanout.topic.headers 以下是具体的代码: direct:路由键只能全部匹配,才能进入到指定队列中.其他使用 direct生产者 ...
- 使用JNA,让java调用原生代码
JNA定义: JNA:java Native Access,是SUN公司开发的基于JNI的框架.JNI使得Java可以调用原生的c或者c++代码. JNA与JNI(Java Native Interf ...
- java原生封装_[Java教程]原生AJAX封装
[Java教程]原生AJAX封装 0 2016-07-12 13:00:08 回归下原生js,网上看到的AJAX封装,遂拿来改改,不知还有何弊端,望指出!1 var ajaxHelper = { 2 ...
- java native code_原生代码(native code)
原生代码(native code) Native code is the code whose memory is not "managed", as in, memory isn ...
- 对于原生代码使用Java线程的优缺点
对于原生的代码使用Java线程与原生的线程相比有一下的优点: 它是很容易建立的. 在原生代码不需要任何改变 它不需要明确的附加到这虚拟机,Java线程已经是Java平台的一部分.原生代码和Java代码 ...
- java原生的编译软件_Java 转原生平台代码 RoboVM
软件介绍 编者注:RoboVM 项目已经关闭,目前有开源替代产品BugVM. RoboVM 编译器可以将 Java 字节码翻译成 ARM 或者 x86 平台上的原生代码,应用可直接在 CPU 上运行, ...
- Android NDK开发篇(四):Java与原生代码通信(原生方法声明与定义与数据类型)
Java与原生代码通信涉及到原生方法声明与定义.数据类型.引用数据类型操作.NIO操作.訪问域.异常处理.原生线程 1.原生方法声明与定义 关于原生方法的声明与定义在上一篇已经讲一点了,这次具体分析一 ...
- java编写一个类book代表教材_java 请通过代码封装,实现如下需求: 编写一个类Book,代表教材:...
java 请通过代码封装,实现如下需求: 编写一个类Book,代表教材: 关注:191 答案:2 mip版 解决时间 2021-02-01 17:18 提问者万丈深渊 2021-02-01 10: ...
最新文章
- javaweb开发3.基于Servlet+JSP+JavaBean开发模式的用户登录注册
- mysql的hash分区_MySQL中hash和key分区值的计算方法
- 如何快速高效读懂1本书
- 手机cpu排行_鲁大师手机芯片排行榜:麒麟990第四,骁龙855第五!
- [C程序设计语言]第一部分
- QHBoxLayout
- DDOS***类型以及iptables防范ddos脚本
- 两个相邻盒子的边框怎么只显示一个_【前端小课堂】0044 盒子
- 非maven项目转成maven后pom.xml解决方法
- Redis所需内存 超过可用内存怎么办
- Linux开放21通信,linux下开启ftp的21号port
- Vue -- 如何在 span 标签上实现一个点击事件
- CSS background 属性
- 【蓝桥杯单片机组模块】13、NEC 红外通信 - vs1838B
- python儿童编程-一款儿童编程入门的理想工具——PythonTurtle
- 仙剑3外传(问情篇)Win7(32/64位)不能运行的完全解决办法【转载】
- 西勒振荡电路------multisim仿真
- oraoledb.oracle.11,Oracle11g链接提示未“在本地计算机注册“OraOLEDB.Oracle”解决方法...
- BHEX创始人巨建华鲲鹏会分享:创业路上从不孤单
- Mac ps 2021 3D功能无法使用问题,怎么办?
热门文章
- 电脑配置及价格_游戏主机推荐 AMD锐龙R52600X配RTX2060组装电脑配置清单及价格
- 数学--数论--HDU 2197 本原串 (推规律)
- 玩转GIT系列之【如何恢复windows系统下git的状态图标显示】
- [递归]递归问题解题思路
- 支持向量机 回归分析_支持向量机和回归分析
- 【Android 修炼手册】常用技术篇 -- Android 热修复解析
- 记住北京历史上的灾难
- 一个我们熟悉的陌生人:多丽丝·莱辛
- 猪年看猪,猪男猪女一共十个。
- VS2010 + OpenCV 2.4.1 环境配置