博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中GET方式提交和POST方式提交
阅读量:5045 次
发布时间:2019-06-12

本文共 8349 字,大约阅读时间需要 27 分钟。

java中GET方式提交的示例:

/**        * 获取关注列表;        * @return        */       @SuppressWarnings("unchecked")       public static ArrayList
getUserList() { StringBuffer bufferRes = new StringBuffer(); ArrayList
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
(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
ob_user = null; //大于1000需要多次获取,或许次数为count/1000 for(int i=0;i
(ob_data.getJSONArray("openid")); for(String open_id : ob_user){ //将多次获取的openid添加到同一个数组 users.add(open_id); } } } } return users; }

java中POST方式提交的示例1:

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
> list = new ArrayList
>(); Map
map = new HashMap
(); 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请求向服务器传递参数的另外一种形式,示例2:

服务器端接受参数:String datas= request.getParameter("datas");

public static void sendPost() throws IOException{        List
> list = new ArrayList
>(); Map
map = new HashMap
(); 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);
        in.close();                 out.close();
} catch (Exception e) { // TODO Auto-generated catch block  e.printStackTrace(); } }

接收数据服务器上接收数据的方式,示例1:

@RequestMapping(value = "/synSystemData")    public void synSystemData(HttpServletRequest request, HttpServletResponse response) throws Exception {        boolean isGet = request.getMethod().toLowerCase().equals("get");        if (!isGet) {            String inputLine;            String notityJson = "";            try {                while ((inputLine = request.getReader().readLine()) != null) {                    notityJson += inputLine;                }                request.getReader().close();            } catch (Exception e) {                e.printStackTrace();            }            if(StringUtil.isEmpty(notityJson )){                notityJson = request.getParameter("content");            }            String json= java.net.URLDecoder.decode(notityJson , "UTF-8");            if(StringUtils.isNotEmpty(json)){                StringBuffer sb = new StringBuffer(); sb.append("ok"); response.getWriter().write(sb.toString());                          }                    }      wirte.flush();                     wirte.close();    }

 

 接收数据服务器上接收数据的方式,示例2:

/**     * 接收从发送数据服务器传过来的json串     * @param request     * @param response     * @throws Exception      */    @RequestMapping(value = "/synSystemData")    public void synSystemData(HttpServletRequest request, HttpServletResponse response) throws Exception{        String result = "error";        boolean isPost = request.getMethod().toLowerCase().equals("post");        PrintWriter wirte = null;        wirte = response.getWriter();        response.setCharacterEncoding("utf-8");        response.setContentType("text/html;charset=utf-8");                if (isPost) {            String json = request.getParameter("datas");            System.out.println(json);            wirte.print(result);        }else{            wirte.print("");        }        wirte.flush();                    wirte.close();    }

 

转载于:https://www.cnblogs.com/shuilangyizu/p/6808043.html

你可能感兴趣的文章
OGRE 源码编译方法
查看>>
上周热点回顾(10.20-10.26)
查看>>
C#正则表达式引发的CPU跑高问题以及解决方法
查看>>
云计算之路-阿里云上:“黑色30秒”走了,“黑色1秒”来了,真相也许大白了...
查看>>
APScheduler调度器
查看>>
设计模式——原型模式
查看>>
【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.1.CSS框架和其他功能
查看>>
如何一个pdf文件拆分为若干个pdf文件
查看>>
web.xml中listener、 filter、servlet 加载顺序及其详解
查看>>
前端chrome浏览器调试总结
查看>>
获取手机验证码修改
查看>>
数据库连接
查看>>
python中数据的变量和字符串的常用使用方法
查看>>
等价类划分进阶篇
查看>>
delphi.指针.PChar
查看>>
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
java 字符串转json,json转对象等等...
查看>>
极客前端部分题目收集【索引】
查看>>
第四天 selenium的安装及使用
查看>>
关于js的设计模式(简单工厂模式,构造函数模式,原型模式,混合模式,动态模式)...
查看>>