Http的GET请求与POST请求调用接口

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Extraordinarylife/article/details/78560082


GET请求

public static String doGet(Map<String, String> mapparams) {
        // 返回对象
        String result = "";
        
        try {
            // 传参
            JSONObject jsonObject = JSONObject.fromObject(mapparams);
            
            // 路径及参数
            String fasd = "?"+"InParam"+"="+URLEncoder.encode(jsonObject.toString(),"UTF-8");
            String getUrl =url+fasd;
            
            // http GET调用
            HttpClient httpclient = new DefaultHttpClient();
            HttpGet httpget = new HttpGet(getUrl);
            HttpResponse response = httpclient.execute(httpget);

            // 状态码
            int status = response.getStatusLine().getStatusCode();
            if(status == HttpStatus.SC_OK){
                // 返回值
                result = EntityUtils.toString(response.getEntity(),"UTF-8");
            }else{
                System.err.println("mapparams>>"+mapparams);
                result="{\"status\":\"FAILED\",\"errorMessage\":\""+EntityUtils.toString(response.getEntity(),"UTF-8")+"\"}";
            }

            httpclient.getConnectionManager().shutdown();
        } catch (Exception e) {
            System.err.println("mapparams>>"+mapparams);
            e.printStackTrace();
        }

        return result;
    }

POST:
public static String doPost(String url,Map<String, Object> mapparam) {

        String result = "";
        try {
            // 路径
            url = url;
            
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.addHeader(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
            
            // mapparam 参数
            String json = JsonConvert.objectToJson(mapparam);
            StringEntity se = new StringEntity(json,"UTF-8");
            se.setContentType("application/json");
            se.setContentEncoding("UTF-8");
            httpPost.setEntity(se);
            HttpResponse response = httpclient.execute(httpPost);
            int status = response.getStatusLine().getStatusCode();
            if(status == HttpStatus.SC_OK){
                
                result = EntityUtils.toString(response.getEntity(),"UTF-8");
            }else{
                System.err.println("mapparams>>"+mapparam);
                result="{\"TYPE\":\"E\",\"errorMessage\":\""+status+"\"}";
            }
            
            httpclient.getConnectionManager().shutdown();
        } catch (Exception e) {
            System.err.println("mapparams>>"+mapparam);
            result="{\"TYPE\":\"E\",\"errorMessage\":\""+"接口不通"+"\"}";
            e.printStackTrace();
        }
        return result;

    }

public static String doPostJson(String url,Map<String, Object> mapparam) {

    String result = "";
    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        httpPost.addHeader(new BasicHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded"));
        // 表单参数传递nvps
        List<NameValuePair> nvps = new ArrayList <NameValuePair>();
        if(mapparam.containsKey("imgpath1")){
            nvps.add(new BasicNameValuePair("imgpath1", mapparam.get("imgpath1").toString()));
        }
        
        httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
        HttpResponse response = httpclient.execute(httpPost);
        int status = response.getStatusLine().getStatusCode();
        if(status == HttpStatus.SC_OK){
            
            result = EntityUtils.toString(response.getEntity(),"UTF-8");
        }else{
            System.err.println("mapparams>>"+mapparam);
            result="{\"TYPE\":\"E\",\"errorMessage\":\""+status+"\"}";
        }
        
        httpclient.getConnectionManager().shutdown();
    } catch (Exception e) {
        System.err.println("mapparams>>"+mapparam);
        result="{\"TYPE\":\"E\",\"errorMessage\":\""+"接口不通"+"\"}";
        e.printStackTrace();
    }
    return result;

}

public static String httpURLConnectionPOST(String POST_URL,String param) {
  	 StringBuilder sb = new StringBuilder(); // 用来存储响应数据  
      try {
          URL url = new URL(POST_URL);  
          // 将url 以 open方法返回的urlConnection  连接强转为HttpURLConnection连接  (标识一个url所引用的远程对象连接)  
          HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 此时cnnection只是为一个连接对象,待连接中  
          // 设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数)  
          connection.setDoOutput(true);  
          // 设置连接输入流为true  
          connection.setDoInput(true);  
          // 设置请求方式为post  
          connection.setRequestMethod("POST");  
          // post请求缓存设为false  
          connection.setUseCaches(false);  
          // 设置该HttpURLConnection实例是否自动执行重定向  
          connection.setInstanceFollowRedirects(true);  
          // 设置请求头里面的各个属性 (以下为设置内容的类型,设置为经过urlEncoded编码过的from参数)  
          // application/x-javascript text/xml->xml数据 application/x-javascript->json对象 application/x-www-form-urlencoded->表单数据  
          // ;charset=utf-8 必须要,不然会出现乱码【★★★★★】  
          connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");     
          // 建立连接 (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行)  
          connection.connect();  
          // 创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容)  
          DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());  
          // 将参数输出到连接  
          dataout.writeBytes("param="+param);  
          // 输出完成后刷新并关闭流  
          dataout.flush();  
          dataout.close(); // 重要且易忽略步骤 (关闭流,切记!)   
          // 连接发起请求,处理服务器响应  (从连接获取到输入流并包装为bufferedReader)  
          BufferedReader bf = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));   
          String line;  
         
          // 循环读取流,若不到结尾处  
          while ((line = bf.readLine()) != null) {  
              sb.append(line).append(System.getProperty("line.separator"));  
          }  
          bf.close();    // 重要且易忽略步骤 (关闭流,切记!)   
          connection.disconnect(); // 销毁连接  
          
      } catch (Exception e) {  
          e.printStackTrace();  
      } 
      return sb.toString();
  }











展开阅读全文

没有更多推荐了,返回首页