zoukankan      html  css  js  c++  java
  • Java 代码实现POST/GET请求

    方式一

    package com.cyb.util;
    
    import java.io.BufferedReader;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.util.HashMap;
    import java.util.Map;
    
    public class Util {
        public static final String DEF_CHATSET = "UTF-8";
        public static final int DEF_CONN_TIMEOUT = 30000;
        public static final int DEF_READ_TIMEOUT = 30000;
        public static String userAgent =  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
     
        //配置您申请的KEY
        public static final String APPKEY ="*************************";
        
        /**
        *
        * @param strUrl 请求地址
        * @param params 请求参数
        * @param method 请求方法
        * @return  网络请求字符串
        * @throws Exception
        */
       public static String net(String strUrl, Map params,String method) throws Exception {
           HttpURLConnection conn = null;
           BufferedReader reader = null;
           String rs = null;
           try {
               StringBuffer sb = new StringBuffer();
               if(method==null || method.equals("GET")){
                   strUrl = strUrl+"?"+urlencode(params);
               }
               URL url = new URL(strUrl);
               conn = (HttpURLConnection) url.openConnection();
               if(method==null || method.equals("GET")){
                   conn.setRequestMethod("GET");
               }else{
                   conn.setRequestMethod("POST");
                   conn.setDoOutput(true);
               }
               conn.setRequestProperty("User-agent", userAgent);
               conn.setUseCaches(false);
               conn.setConnectTimeout(DEF_CONN_TIMEOUT);
               conn.setReadTimeout(DEF_READ_TIMEOUT);
               conn.setInstanceFollowRedirects(false);
               conn.connect();
               if (params!= null && method.equals("POST")) {
                   try {
                       DataOutputStream out = new DataOutputStream(conn.getOutputStream());
                           out.writeBytes(urlencode(params));
                   } catch (Exception e) {
                       // TODO: handle exception
                   }
               }
               InputStream is = conn.getInputStream();
               reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));
               String strRead = null;
               while ((strRead = reader.readLine()) != null) {
                   sb.append(strRead);
               }
               rs = sb.toString();
           } catch (IOException e) {
               e.printStackTrace();
           } finally {
               if (reader != null) {
                   reader.close();
               }
               if (conn != null) {
                   conn.disconnect();
               }
           }
           return rs;
       }
    
       //将map型转为请求参数型
       public static String urlencode(Map<String,Object>data) {
           StringBuilder sb = new StringBuilder();
           for (Map.Entry i : data.entrySet()) {
               try {
                   sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");
               } catch (UnsupportedEncodingException e) {
                   e.printStackTrace();
               }
           }
           return sb.toString();
       }
    }

    方式二

        /**
         * 向指定的地址发送GET请求
         * @param url
         * @return
         */
        public static String get(String url) {
            try {
                URL urlObjUrl=new URL(url);
                //打开链接
                URLConnection connection =urlObjUrl.openConnection();
                InputStream iStream=connection.getInputStream();
                byte[] b=new byte[1024];
                int len;
                StringBuilder sb=new StringBuilder();
                while ((len=iStream.read(b))!=-1) {
                    sb.append(new String(b,0,len));
                }
                return sb.toString();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            return null;
        }

    方式三

        /**
         * 向指定的地址发送一个POST请求
         * @param url 请求地址
         * @param params 请求数据
         * @return
         */
        public static String post(String url,String params) {
            try {
                URL urlObjUrl=new URL(url);
                //打开链接
                URLConnection connection =urlObjUrl.openConnection();
                //要发送数据出去,必须要设置为可发送数据状态
                connection.setDoOutput(true);
                OutputStream os=connection.getOutputStream();
                //写出数据
                os.write(params.getBytes());
                os.close();
                //获取输入流,读取数据
                InputStream iStream=connection.getInputStream();
                byte[] b=new byte[1024];
                int len;
                StringBuilder sb=new StringBuilder();
                while ((len=iStream.read(b))!=-1) {
                    sb.append(new String(b,0,len));
                }
                return sb.toString();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return null;
        }
  • 相关阅读:
    SPOJ SAMER08A
    SPOJ TRAFFICN
    CS Academy Set Subtraction
    CS Academy Bad Triplet
    CF Round 432 C. Five Dimensional Points
    CF Round 432 B. Arpa and an exam about geometry
    SPOJ INVCNT
    CS Academy Palindromic Tree
    身体训练
    简单瞎搞题
  • 原文地址:https://www.cnblogs.com/chenyanbin/p/12582294.html
Copyright © 2011-2022 走看看