java中GET方式提交和POST方式提交
java中GET方式提交的示例:
/*** 获取关注列表;* @return*/@SuppressWarnings("unchecked")public static ArrayList<String> getUserList() {StringBuffer bufferRes = new StringBuffer();ArrayList<String> users = null;try {URL realUrl = new URL("https://api.weixin.qq.com/cgi-bin/user/get?access_token=" + TokenProxys.accessTokens());//URL realUrl = new URL("https://api.weixin.qq.com/cgi-bin/user/tag/get?access_token=" + TokenProxys.accessTokens()); HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();// 请求方式 conn.setDoOutput(true);conn.setDoInput(true);conn.setRequestMethod("GET");conn.setUseCaches(false);conn.setInstanceFollowRedirects(true);conn.setRequestProperty("Content-Type","application/json");conn.connect();// 获取URLConnection对象对应的输入流 InputStream in =conn.getInputStream();BufferedReader read =new BufferedReader(new InputStreamReader(in,"UTF-8"));String valueString =null;while ((valueString=read.readLine())!=null){bufferRes.append(valueString);}System.out.println(bufferRes);in.close();if (conn !=null){// 关闭连接 conn.disconnect();}} catch (Exception e) {e.printStackTrace();}//将返回的字符串转换成json JSONObject jsonObject = JSONObject.fromObject(bufferRes.toString());//解析json中表示openid的列表 JSONObject data = (JSONObject)jsonObject.get("data");if(data!=null){//将openid列表转化成数组保存 users = new ArrayList<String>(data.getJSONArray("openid"));//获取关注者总数int count = Integer.parseInt(jsonObject.get("total").toString());if(count>1000){JSONObject object = jsonObject;String next_openid = null;JSONObject ob_data = null;ArrayList<String> ob_user = null;//大于1000需要多次获取,或许次数为count/1000for(int i=0;i<count/1000;i++){//解析出下次获取的启示openid next_openid = object.get("next_openid").toString();object = getUserJson(next_openid);ob_data = (JSONObject)object.get("data");ob_user = new ArrayList<String>(ob_data.getJSONArray("openid"));for(String open_id : ob_user){//将多次获取的openid添加到同一个数组 users.add(open_id);}}}}return users;}
java中POST方式提交的示例:
public static void main(String[] args) {try { String pathUrl = "https://api.weixin.qq.com/cgi-bin/user/tag/get?access_token=zN6OKXWAdBKdwPUc1CFXIW-czck3W1CURoKr38Xy7jjDpyIxrpmSyfglAY1Bnvq3FePZbFVUzpeLfWC9lml7ENeApBJhSDXE-BRrHCmBsTk4gUI6DxxDgrGekrdkUSDkETAhAGAZOV"; // 建立连接 URL url = new URL(pathUrl); HttpURLConnection httpConn = (HttpURLConnection) url.openConnection(); // //设置连接属性 httpConn.setDoOutput(true);// 使用 URL 连接进行输出 httpConn.setDoInput(true);// 使用 URL 连接进行输入 httpConn.setUseCaches(false);// 忽略缓存 httpConn.setRequestMethod("POST");// 设置URL请求方法//POST请求设置所需要的JSON数据格式{"tagid" : 134,"next_openid":""//第一个拉取的OPENID,不填默认从头开始拉取}List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();Map<String, Object> map = new HashMap<String, Object>();map.put("tagid", 104);map.put("next_openid","");list.add(map);JSONArray arry=JSONArray.fromObject(map);String requestString = arry.toString().replace("[", "").replace("]", "");// 设置请求属性 // 获得数据字节数据,请求数据流的编码,必须和下面服务器端处理请求流的编码一致 byte[] requestStringBytes = requestString.getBytes("utf-8"); httpConn.setRequestProperty("Content-length", "" + requestStringBytes.length); httpConn.setRequestProperty("Content-Type", "application/octet-stream"); httpConn.setRequestProperty("Connection", "Keep-Alive");// 维持长连接 httpConn.setRequestProperty("Charset", "UTF-8"); // 建立输出流,并写入数据 OutputStream outputStream = httpConn.getOutputStream(); outputStream.write(requestStringBytes); outputStream.close(); // 获得响应状态 int responseCode = httpConn.getResponseCode(); if (HttpURLConnection.HTTP_OK == responseCode) {// 连接成功 // 当正确响应时处理数据 StringBuffer sb = new StringBuffer(); String readLine; BufferedReader responseReader; // 处理响应流,必须与服务器响应流输出的编码一致 responseReader = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), "utf-8")); while ((readLine = responseReader.readLine()) != null) { sb.append(readLine).append("\n"); } responseReader.close(); System.err.println(sb.toString());} } catch (Exception ex) { ex.printStackTrace(); } }
post请求向服务器传递参数的另外一种形式:
服务器端接受参数:String datas= request.getParameter("datas");
public static void sendPost() throws IOException{List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();Map<String, Object> map = new HashMap<String, Object>();map.put("phone", "phone");list.add(map);JSONArray arry=JSONArray.fromObject(map);String requestString = arry.toString();String result="";PrintWriter out = null; BufferedReader in = null; String pathUrl = "http://shuilangyizu.iask.in/app/appWechatDataController/wchatInfo.do";URL url=null;try {url = new URL(pathUrl);URLConnection connect = url.openConnection();connect.setRequestProperty("content-type","application/x-www-form-urlencoded;charset=utf-8");connect.setRequestProperty("method","POST");byte[] bytes= requestString.getBytes("utf-8") ;connect.setDoOutput(true); connect.setDoInput(true); out = new PrintWriter(connect.getOutputStream()); // 发送请求参数 out.print("datas="+requestString);out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(connect.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } System.out.println(result); } catch (Exception e) {// TODO Auto-generated catch block e.printStackTrace();}}
java中GET方式提交和POST方式提交相关推荐
- java直接调用复制文件,java中文件复制的4种方式,java文件的复制
java中文件复制的4种方式,java文件的复制 今天一个同事问我文件复制的问题,他一个100M的文件复制的指定目录下竟然成了1G多,吓我一跳,后来看了他的代码发现是自己通过字节流复制的,定义的字节数 ...
- Java中HashMap遍历的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...
- JAVA中集合输出的四种方式
在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello {public stati ...
- java中Map遍历的四种方式
java中Map遍历的四种方式 在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方 ...
- Java中实现接口的三种方式您造吗?
本文介绍了Java中实现接口的三种方式:常规实现方式.匿名内部类和 Lambda表达式实现方式.希望已经了解的同学可以重新温习一下,不了解的同学则从中受益! Java中接口最常规的实现方式 同学们都会 ...
- JAVA中利用break加标签的方式跳出双重for循环
JAVA中利用break加标签的方式跳出双重for循环 一般情况下,使用break只能跳出当前层的for循环,但是加了标签的话,就可以跳出多重循环. public class TestBreak {@ ...
- java中实现多线程的三种方式
java中实现多线程的三种方式 1.实现多线程的方法: 在java中实现多线程的两途径:继承Thread类,实现Runable接口(Callable) 2.继承Thread类实现多线程: 继承类T ...
- java中Map遍历的三种方式
Java中Map遍历的三种方式 前言 一:在for循环中使用entries实现Map的遍历: 二:在for循环中遍历key或者values,一般适用于只需要map中的key或者value时使用,在性能 ...
- 代码示例:Java中定义数组的三种方式
在Java中,数组的定义有三种方式,其基本语法格式如下: 数组类型[] 数组名 = new 数组类型[数组长度]; 数组类型[] 数组名 = new 数组类型[]{数组元素0,数组元素1,...}; ...
- Java中Http连接的两种方式
在java中连接http,介绍两种方法,一种是java的HttpUrlConnection,另一种是apacha公司的httpClient,后者是第三方的类库需要从外部,导入,同时这也是第一次使用外部 ...
最新文章
- C#笔记2__Char类、String类、StringBuilder类 / 正则表达式 /
- 空间刚架matlab_Matlab绘制空间几何图
- 查看java返回的值,JavaScript 遍历对象查找指定的值并返回路径
- throw throws 区别
- JavaScript--获取页面盒子中鼠标相对于盒子上、左边框的坐标
- matlab的fft点数,matlab fft的点数问题
- fetch与XHR的区别与优势
- 如何在EJB3中JNDI调用SessionBean(二)
- 用PHP生成随机数的函数
- Java中Set的使用
- Redis:四、jedis连接redis服务器
- TortoiseGit--小乌龟git项目中的使用简介
- eclipse中文版设置字体大小
- 机器人搬运码垛工作站
- java简单小程序 生日快乐,跪求一祝福别人生日快乐小程序
- Zeloof 自制芯片工艺
- 《Python编程:从入门到实践》配套资源 官方网站免费下载
- 解决荣耀系列手机打开usb调试无法连接adb的问题
- 详解Redis和Memcached
- 国之重器 望穿秋水——北邮老师廖建新介绍
热门文章
- LeetCode695. 岛屿的最大面积(C#)
- c语言程序后退_c语言中向后退一格是啥符号?
- Spring-Cloud 学习笔记-(4)负载均衡器Ribbon
- js实现替换指定字符后面的内容(包括指定字符)
- (OS X) OpenCV架构x86_64的未定义符号:错误(OpenCV Undefined symbols for architecture x86_64: error)...
- Linux 系统常用命令汇总(二) vi 文本编辑
- 构造函数为什么不能是虚函数 ( 转载自C/C++程序员之家)
- (转)SystemProcessesAndThreadsInformation
- 输入法智能化发展历程
- antdesignvue upload vue3个人笔记待更新