发起post、get请求

时间:2023-12-25 08:49:31

HttpURLConnection对象

/***
* 发起post请求,传输xml数据
* @param strUrl 请求地址
* @param xml 发送数据
* @return string 对方服务器返回数据
*/
public static String PostByHttpURLConnection(String strUrl, String xml) {
  HttpURLConnection conn;
  try {
    URL url = new URL(strUrl);
    conn = (HttpURLConnection) url.openConnection();
    // 设置是否从httpUrlConnection读入,默认情况下是true;
    conn.setDoInput(true);
    // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false;
    conn.setDoOutput(true);
    // 设定请求的方法为"POST",默认是GET
    conn.setRequestMethod("POST");
    //设置超时
    conn.setConnectTimeout(3000);
    conn.setReadTimeout(4000);
    // Post 请求不能使用缓存
    conn.setUseCaches(false);
    conn.setInstanceFollowRedirects(true);
    // 设定传送的内容类型是可序列化的java对象
    conn.setRequestProperty("Content-Type","text/xml");
    conn.setRequestProperty("Pragma:", "no-cache");
    conn.setRequestProperty("Cache-Control", "no-cache");
    conn.setRequestProperty("charset", "utf-8");     OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
    out.write(new String(xml.getBytes("utf-8")));
    out.flush();
    out.close();     BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line = "";
    StringBuilder sb = new StringBuilder();
    for (line = br.readLine(); line != null; line = br.readLine()) {
      //System.out.println(line);
      sb.append(line);
    }
    return sb.toString();
  } catch (IOException ex) {
    ex.printStackTrace();
    return "error";
  }
}