• 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/1000
    
                     for(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方式提交的示例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<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("
    "); 
                    } 
                    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<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);
            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();
        }
  • 相关阅读:
    linux下samba服务器的搭建(案列模拟)
    linux下nfs服务器的搭建
    linux 下 php+gd2+freetype+jpeg+png+zlib编译安装
    linux下xcache的安装
    wget如何设置代理
    实验记录:vsftp整合mysql-pam管理虚拟账号
    tr命令 实例
    sed学习笔记
    Byte、KB、MB、GB、TB、PB转换
    对lombbok @slf4j 进行测试用例
  • 原文地址:https://www.cnblogs.com/shuilangyizu/p/6808043.html
Copyright © 2020-2023  润新知