0%

http请求

post/get请求工具类

  • HttpRequest工具类
      package com.code.util;
      
      import java.io.*;
      import java.net.URL;
      import java.net.URLConnection;
      import java.util.List;
      import java.util.Map;
      
      public class HttpRequest {
          /**
           * 向指定URL发送GET方法的 请求
           *
           * @param url   发送请求的URL
           * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
           * @return URL所代表远程资源的响应
           */
          public static String sendGet(String url, String param) {
              String result = "";
              BufferedReader in = null;
              try {
                  String urlName = url + "?" + param;
                  URL realUrl = new URL(urlName);
                  // 打开和URL之间的连接
                  URLConnection conn = realUrl.openConnection();
                  // 设置通用的请求属性
                  conn.setRequestProperty("accept", "*/*");
                  conn.setRequestProperty("connection", "Keep-Alive");
                  conn.setRequestProperty("user-agent",
                          "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
                  // 建立实际的连接
                  conn.connect();
                  // 获取所有响应头字段
                  Map<String, List<String>> map = conn.getHeaderFields();
                  // 遍历所有的响应头字段
                  for (String key : map.keySet()) {
                      System.out.println(key + "--->" + map.get(key));
                  }
                  // 定义BufferedReader输入流来读取URL的响应
                  in = new BufferedReader(
                          new InputStreamReader(conn.getInputStream(),"UTF-8"));
                  String line;
                  while ((line = in.readLine()) != null) {
                      result += line;
                  }
              } catch (Exception e) {
                  System.out.println("发送GET请求出现异常!" + e);
                  e.printStackTrace();
              }
              // 使用finally块来关闭输入流
              finally {
                  try {
                      if (in != null) {
                          in.close();
                      }
                  } catch (IOException ex) {
                      ex.printStackTrace();
                  }
              }
              return result;
          }
      
          /**
           * 向指定URL发送POST方法的请求
           *
           * @param url   发送请求的URL
           * @param param 请求参数,请求参数应该是name1=value1&name2=value2的形式。
           * @return URL所代表远程资源的响应
           */
          public static String sendPost(String url, String param) {
              PrintWriter out = null;
              BufferedReader in = null;
              String result = "";
              try {
                  URL realUrl = new URL(url);
                  // 打开和URL之间的连接
                  URLConnection conn = realUrl.openConnection();
                  // 设置通用的请求属性
                  conn.setRequestProperty("accept", "*/*");
                  conn.setRequestProperty("connection", "Keep-Alive");
                  conn.setRequestProperty("user-agent",
                          "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
                  // 发送POST请求必须设置如下两行
                  conn.setDoOutput(true);
                  conn.setDoInput(true);
                  // 获取URLConnection对象对应的输出流
                  out = new PrintWriter(conn.getOutputStream());
                  // 发送请求参数
                  out.print(param);
                  // flush输出流的缓冲
                  out.flush();
                  // 定义BufferedReader输入流来读取URL的响应
                  in = new BufferedReader(
                          new InputStreamReader(conn.getInputStream(),"UTF-8"));
                  String line;
                  while ((line = in.readLine()) != null) {
                      result += line;
                  }
              } catch (Exception e) {
                  System.out.println("发送POST请求出现异常!" + e);
                  e.printStackTrace();
              }
              // 使用finally块来关闭输出流、输入流
              finally {
                  try {
                      if (out != null) {
                          out.close();
                      }
                      if (in != null) {
                          in.close();
                      }
                  } catch (IOException ex) {
                      ex.printStackTrace();
                  }
              }
              return result;
          }
      
      }
    

调用

  • 调用方式(详情参考lib下http文件夹中的附件)

      //String loginParam = "accessKey=test&accessSecret=test&clientId=clientId&clientType=PC";
        String loginParam = "accessKey=" + accessKey + "&accessSecret=" + accessSecret + "&clientId=" + clientId + "&clientType=" + clientType;
      
       //登陆接口:
        String loginUrl = "https://open.wellsign.cn/dandanqian/api/index.php/Conv/User/login";
      //loginParam = "accessKey=test&accessSecret=test&clientId=clientId&clientType=PC";
        String loginSuccess = HttpRequest.sendPost(loginUrl, loginParam);