java如何进行http的get请求和post请求

2025-10-27 00:25:07

1、首先先创建一个MyHttp类来作为Http请求的工具类

java如何进行http的get请求和post请求

2、接下去写入http的get请求的静态方法

/**

* 发起Http的get请求

* @param property 请求头参数

* @url 请求的地址

* @return 响应内容[Map<String, List<String>>(响应头),String(响应体)]

*/

public static Object[] get(String url,LinkedHashMap<String, String> property) {

StringBuffer buffer=null;  

Map<String, List<String>> headerFields = null;

   try{  

   URL u=new URL(url);  

   HttpsURLConnection conn=(HttpsURLConnection)u.openConnection();  

   Set<String> keySet = property.keySet();

   for (String key : keySet) {

    conn.setRequestProperty(key, property.get(key));

}

   //设置当前实例使用的SSLSoctetFactory  

   System.out.println("开始链接");

   conn.connect();  

   System.out.println("链接成功");

   //读取服务器返回的响应头

   headerFields  = conn.getHeaderFields();

   //读取服务器端返回的内容  

   InputStream is=conn.getInputStream();  

   InputStreamReader isr=new InputStreamReader(is,"utf-8");  

   BufferedReader br=new BufferedReader(isr);  

   buffer=new StringBuffer();  

   String line=null;  

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

       buffer.append(line);  

   }  

   }catch(Exception e){  

       e.printStackTrace();  

   }

   Object[] response = {headerFields, buffer.toString()};

   return response; 

}

java如何进行http的get请求和post请求

3、这里解释下这个静态方法的传入参数和返回结果的内容,url是包括请求参数的get请求链接,property参数是请求头的键值对,返回值包括两个内容,一个是请求头的键值对,一个是转为string的返回内容,这里我们一个Object数组来放置这两个返回值,用的时候自行强转即可

java如何进行http的get请求和post请求

4、接着是http的post方法,参数多一个content,是post给服务器的数据

/**

* 发情http的post请求

* @param url 目标地址

* @param property 请求头参数

* @param content 请求内容

* @return 响应内容[Map<String, List<String>>(响应头),String(响应体)]return 返回内容 [请求头,内容]

*/

public static Object[] post(String url,LinkedHashMap<String, String> property,String content) {

StringBuffer buffer=null;  

   Map<String, List<String>> headerFields = null;

try{  

   URL u=new URL(url);  

   HttpsURLConnection conn=(HttpsURLConnection)u.openConnection();  

   conn.setDoOutput(true);  

   conn.setDoInput(true);  

   conn.setUseCaches(false);  

   conn.setRequestMethod("POST"); 

   Set<String> keySet = property.keySet();

   for (String key : keySet) {

    conn.setRequestProperty(key, property.get(key));

}

   //设置当前实例使用的SSLSoctetFactory  

   System.out.println("开始链接");

   conn.connect();  

   DataOutputStream os = new DataOutputStream( conn.getOutputStream() );

        os.writeBytes(content);

        os.flush();

        os.close();

   System.out.println("链接成功");

   //读取服务器返回的响应头

   headerFields  = conn.getHeaderFields();

   //读取服务器端返回的内容  

   InputStream is=conn.getInputStream();  

   InputStreamReader isr=new InputStreamReader(is,"utf-8");  

   BufferedReader br=new BufferedReader(isr);  

   buffer=new StringBuffer();  

   String line=null;  

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

       buffer.append(line);  

   }  

   }catch(Exception e){  

       e.printStackTrace();  

   }

   Object[] response = {headerFields, buffer.toString()};

   return response;

}

java如何进行http的get请求和post请求

5、http的post请求主要就是多一个设置为post方法和输出post数据

java如何进行http的get请求和post请求

6、接下去是完整的代码:

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.URL;

import java.util.LinkedHashMap;

import java.util.List;

import java.util.Map;

import java.util.Set;

import javax.net.ssl.HttpsURLConnection;

public class MyHttp {

/**

* 发起Http的get请求

* @param property 请求头参数

* @url 请求的地址

* @return 响应内容[Map<String, List<String>>(响应头),String(响应体)]

*/

public static Object[] get(String url,LinkedHashMap<String, String> property) {

StringBuffer buffer=null;  

Map<String, List<String>> headerFields = null;

   try{  

   URL u=new URL(url);  

   HttpsURLConnection conn=(HttpsURLConnection)u.openConnection();  

   Set<String> keySet = property.keySet();

   for (String key : keySet) {

    conn.setRequestProperty(key, property.get(key));

}

   //设置当前实例使用的SSLSoctetFactory  

   System.out.println("开始链接");

   conn.connect();  

   System.out.println("链接成功");

   //读取服务器返回的响应头

   headerFields  = conn.getHeaderFields();

   //读取服务器端返回的内容  

   InputStream is=conn.getInputStream();  

   InputStreamReader isr=new InputStreamReader(is,"utf-8");  

   BufferedReader br=new BufferedReader(isr);  

   buffer=new StringBuffer();  

   String line=null;  

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

       buffer.append(line);  

   }  

   }catch(Exception e){  

       e.printStackTrace();  

   }

   Object[] response = {headerFields, buffer.toString()};

   return response; 

}

/**

* 发情http的post请求

* @param url 目标地址

* @param property 请求头参数

* @param content 请求内容

* @return 响应内容[Map<String, List<String>>(响应头),String(响应体)]return 返回内容 [请求头,内容]

*/

public static Object[] post(String url,LinkedHashMap<String, String> property,String content) {

StringBuffer buffer=null;  

   Map<String, List<String>> headerFields = null;

try{  

   URL u=new URL(url);  

   HttpsURLConnection conn=(HttpsURLConnection)u.openConnection();  

   conn.setDoOutput(true);  

   conn.setDoInput(true);  

   conn.setUseCaches(false);  

   conn.setRequestMethod("POST"); 

   Set<String> keySet = property.keySet();

   for (String key : keySet) {

    conn.setRequestProperty(key, property.get(key));

}

   //设置当前实例使用的SSLSoctetFactory  

   System.out.println("开始链接");

   conn.connect();  

   DataOutputStream os = new DataOutputStream( conn.getOutputStream() );

        os.writeBytes(content);

        os.flush();

        os.close();

   System.out.println("链接成功");

   //读取服务器返回的响应头

   headerFields  = conn.getHeaderFields();

   //读取服务器端返回的内容  

   InputStream is=conn.getInputStream();  

   InputStreamReader isr=new InputStreamReader(is,"utf-8");  

   BufferedReader br=new BufferedReader(isr);  

   buffer=new StringBuffer();  

   String line=null;  

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

       buffer.append(line);  

   }  

   }catch(Exception e){  

       e.printStackTrace();  

   }

   Object[] response = {headerFields, buffer.toString()};

   return response;

}

}

java如何进行http的get请求和post请求

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢