http请求工具

区块链

  package com.util.http;

  import java.io.BufferedReader;

  import java.io.IOException;

  import java.io.InputStreamReader;

  import java.io.PrintWriter;

  import java.net.URL;

  import java.net.URLConnection;

  import java.util.List;

  import java.util.Map;

  import net.sf.json.JSONObject;

  import org.apache.commons.httpclient.HttpClient;

  import org.apache.commons.httpclient.NameValuePair;

  import org.apache.commons.httpclient.methods.GetMethod;

  import org.apache.commons.httpclient.methods.PostMethod;

  /**

   * http请求工具

   * @author lijx

   * 2022-07-24

   */

  public class HttpUtil {

   public static final String httpClientPost(String url) {

   String result = "";

   HttpClient client = new HttpClient();

   GetMethod getMethod = new GetMethod(url);

   try {

   client.executeMethod(getMethod);

   result = getMethod.getResponseBodyAsString();

   } catch (Exception e) {

   e.printStackTrace();

   } finally {

   getMethod.releaseConnection();

   }

   return result;

   }

   public static final String httpClientPost(String url, List<NameValuePair> list)

  {

   String result = "";

   HttpClient client = new HttpClient();

   PostMethod postMethod = new PostMethod(url);

   try {

   NameValuePair[] params = new NameValuePair[list.size()];

   for (int i = 0; i < list.size(); i++) {

   params[i] = list.get(i);

   }

   postMethod.addParameters(params);

   postMethod.addRequestHeader("", "");

   client.executeMethod(postMethod);

   result = postMethod.getResponseBodyAsString();

   } catch (Exception e) {

   e.printStackTrace();

   } finally {

   postMethod.releaseConnection();

   }

   return result;

   }

   @SuppressWarnings("deprecation")

   public static final String httpClientPost(String url,JSONObject json) {

   String result = "";

   HttpClient client = new HttpClient();

   PostMethod postMethod = new PostMethod(url);

   try {

   postMethod.setRequestHeader("Content-

  Type","application/json;charset=UTF-8");

   postMethod.setRequestBody(json.toString());

   client.executeMethod(postMethod);

   result = postMethod.getResponseBodyAsString();

   } catch (Exception e) {

   e.printStackTrace();

   } finally {

   postMethod.releaseConnection();

   }

   return result;

   }

   @SuppressWarnings("deprecation")

   public static final String jsonPost(String url,String json) {

   String result = "";

   HttpClient client = new HttpClient();

   PostMethod postMethod = new PostMethod(url);

   try {

   postMethod.setRequestHeader("Content-

  Type","application/json;charset=UTF-8");

   postMethod.setRequestBody(json);

   client.executeMethod(postMethod);

   result = postMethod.getResponseBodyAsString();

   } catch (Exception e) {

   e.printStackTrace();

   } finally {

   postMethod.releaseConnection();

   }

   return result;

   }

   public static String sGet(String url) {

   String result = "";

   BufferedReader in = null;

   try {

   String urlNameString = url ;

   URL realUrl = new URL(urlNameString);

   // 打开和URL之间的连接

   URLConnection connection = realUrl.openConnection();

   // 设置通用的请求属性

   connection.setRequestProperty("accept", "*/*");

   connection.setRequestProperty("connection", "Keep-Alive");

   connection.setRequestProperty("user-agent",

   "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

   // 建立实际的连接

   connection.connect();

   // 获取所有响应头字段

   Map<String, List<String>> map = connection.getHeaderFields();

   // 遍历所有的响应头字段

   for (String key : map.keySet()) {

   System.out.println(key + "--->" + map.get(key));

   }

   // 定义 BufferedReader输入流来读取URL的响应

   in = new BufferedReader(new InputStreamReader(

   connection.getInputStream()));

   String line;

   while ((line = in.readLine()) != null) {

   result += line;

   }

   } catch (Exception e) {

   e.printStackTrace();

   }

   // 使用finally块来关闭输入流

   finally {

   try {

   if (in != null) {

   in.close();

   }

   } catch (Exception e2) {

   e2.printStackTrace();

   }

   }

   return result;

   }

   /*public static String sPut(String url,String data) {

   String result = "";

   BufferedReader in = null;

   try {

   CloseableHttpClient closeableHttpClient = HttpClients.createDefault();

   HttpPut httpput = new HttpPut(url);

   httpput.setHeader("username","111");

   httpput.addHeader("password","111");

   //组织请求参数

   StringEntity stringEntity = new StringEntity(data, "UTF-8");

   httpput.setEntity(stringEntity);

   CloseableHttpResponse httpResponse = null;

   try {

   //响应信息

   httpResponse = closeableHttpClient.execute(httpput);

   HttpEntity entity = httpResponse.getEntity();

   result = EntityUtils.toString(entity, "UTF-8");

   } catch (Exception e) {

   e.printStackTrace();

   }

   }

   // 使用finally块来关闭输入流

   finally {

   try {

   if (in != null) {

   in.close();

   }

   } catch (Exception e2) {

   e2.printStackTrace();

   }

   }

   return result;

   }*/

   public static String sPost(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()));

   String line;

   while ((line = in.readLine()) != null) {

   result += line;

   }

   } catch (Exception e) {

   e.printStackTrace();

   }

   //使用finally块来关闭输出流、输入流

   finally{

   try{

   if(out!=null){

   out.close();

   }

   if(in!=null){

   in.close();

   }

   }catch(IOException ex){

   ex.printStackTrace();

   }

   }

   return result;

   }

  }

标签: 区块链