Http请求get、post工具类
在网上找了好久都没有找到post、get请求的工具类,现在整理了一下分享出来。http工具类如下:
package com.qlwb.business.util;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.lang.reflect.Field;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;import net.sf.json.JSONObject;import org.apache.log4j.Logger;/*** * * @类编号:* @类名称:HttpRequest* @内容摘要: http post get请求* @author:鹿伟伟* @创建日期:2016年4月13日 下午4:03:50* @修改人:* @修改日期:* @修改描述:简单描述修改的内容* @version 1.0.0* */
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 = "";Logger.getLogger(HttpRequest.class).info("流量充值开始:"+url+"&"+param);try {URL realUrl = new URL(url);// 打开和URL之间的连接URLConnection conn = realUrl.openConnection();// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");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;}Logger.getLogger(HttpRequest.class).info("流量充值结束:"+result);} 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;}public static String formatParam(Object o) {StringBuffer sbf= new StringBuffer();Class cls = o.getClass();Field[] fields = cls.getDeclaredFields();try {for (Field f : fields) {f.setAccessible(true);if (!"serialVersionUID".equals(f.getName())) {sbf.append(f.getName() + "=" + (f.get(o)==null?"":f.get(o) )+ "&");}
// if (f.get(o) != null && f.get(o) != "") {// }}} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();}return sbf.toString().substring(0, sbf.toString().length()-1);}public static void main(String[] args) {
// ThirdRechargeReqParams p=new ThirdRechargeReqParams();
// p.setMobile("18706402245");
// p.setOrderMeal("10");
// p.setMsgId("123456");
// p.setRange("0");
// System.out.println(p.toString());
// System.out.println(CreditMallHandle.ThirdFlowRecharge(p));
// Timer timer = new Timer();
// timer.schedule(new RequestTask(), 1000,6*1000);
// timer.cancel();JSONObject bodyObj = JSONObject.fromObject(HttpRequest.sendPost("http://api.wxflow.com:9092/Public/Api/?service=User.buyFlowOrderInfo", "userName=qlyd&userPwd=27e3b7118777a1114fb0c9cc0052d31a614c55da&mobile=18706402245&orderMeal=20&orderTime=1&msgId=23213&extend=&range=0"));System.out.println(bodyObj.getJSONObject("data").getString("code"));}
}
Http请求get、post工具类相关推荐
- ios开发循环网络请求_GitHub - JadenTeng/ResourceX: iOS网络请求,网络泛型编程,工具类的封装,基于AFNetworking 实现, NSCache数据缓存...
ResourceX 通过AFNetworking.YYModel 解析网络泛型编程简化网络请求 现如今,网络通信几乎涉及每一个app程序.对于绝大多数请求HTTP API的方法,它们的执行流程都可以分 ...
- android httputils更换成https请求,Android开发工具类之HttpUtils
今天我们讲常用的开发工具类之HttpUtils,我发现上两次,我对于每个方法都进行了一定的解释,有人跟我评论和留言说,不用我解释,这么简单,这么明显的使用方法,再笨的人也能看懂,多此一举,好吧,这次我 ...
- java代码post接口请求 用 hutool工具类
package com.byd.com;import cn.hutool.http.HttpRequest; import cn.hutool.json.JSONObject;public class ...
- 从服务器请求文件流工具类,SpringBoot我想获取图片流,然后将图片流的数据传到服务器上...
我想获取图片流,然后将图片流的数据传到服务器上 这行好像是获取图片流的,但是这个buffers我怎么传递给服务器 我想把buffers作为参数传给口,不知道怎么实现?ByteBuffer buffer ...
- javascript常用工具类的封装
目录 一.js数组工具类 工具类方法 工具类代码 测试MyArrayFn中的所有方法 二.js字符串校验工具类 工具类方法 工具类代码 三.js时间Date工具类 工具类方法 工具类代码 四.js浏览 ...
- ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。
DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...
- 史上最全的开发工具类
银行卡管理 → BankCheck checkBankCard : 校验银行卡卡号是否合法 getBankCardCheckCode: 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位 ge ...
- httpclient工具类,post请求发送json字符串参数,中文乱码处理
在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文 ...
- Java 调用接口工具类并设置请求和传输超时时间
废话不多说直接上代码 /*** 接口调用工具类* @Author: MonsterTiny* @Date: 2020-07-23 10:06*/ public class HttpClientUtil ...
- 轻松把玩HttpClient之封装HttpClient工具类(五),携带Cookie的请求
近期更新了一下HttpClientUtil工具类代码,主要是加入了一个參数HttpContext,这个是用来干嘛的呢?事实上是用来保存和传递Cookie所须要的. 由于我们有非常多时候都须要登录.然后 ...
最新文章
- C语言中浮点型在计算机中的存储
- c++ 异步回调_知道Java中的回调机制吗?
- burpsuite 实战指南
- vmware提示com.vmware.sps.fault.QsConnectionException报错
- [转]JavaScript构造函数及原型对象
- Linux中Postfix邮件发送配置(三)
- upload-labs_pass14_pass15_pass16_图片马的制作_结合文件包含漏洞_getimagesize_exif_imagetype
- 数据库DBA(3年以内需求)
- 系泊系统 matlab代码,一种应用于系泊系统的设计方法与流程
- 如何在kylo中添加数据源
- Android studio点击按钮闪退问题
- html5 video的简单使用
- Win11下蓝牙鼠标停止4秒后启动卡顿
- bat批处理与adb命令的配合
- Unity Shader:实现菲涅尔+色散效果的环境映射以及相关原理解析
- 我可以用计算机做图吗,【我用Word和excel画图分别怎么制作】电脑excle怎样制作画图...
- Ubuntu16.04 装机之后要做的二十件事
- 【狼人杀plus全记录】没有公网IP照样完美解决微信小程序本地测试问题,超简单方法!
- python程序员是怎么给宝宝取名字的
- 内网文件共享服务器方案
热门文章
- 图像特征的特点及其常用的特征提取与匹配方法
- 画法几何与工程制图2
- 东北大学c语言作业答案,{东北大学}2018年秋学期《画法几何及土木建筑制图》在线作业2课后参考答案...
- 【业务安全04】万能用户名及万能密码
- 单片机中的冒泡排序(汇编语言)
- h3c交换机服务器无响应,华为(H3C)交换机版本升级遇到的问题总结
- Windows系统如何合并两个txt文本
- AI 医生“战疫”在前线
- three.js实现球体地球城市模拟迁徙
- 科学道德与学风-2021雨课堂答案-第5章