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

 时间:2024-11-13 15:51:34

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方法,参数多一个co艘绒庳焰ntent,是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.Dat锾攒揉敫aOutputStream;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请求
  • plsql备份数据为sql脚本格式
  • Xshell如何设置更好用
  • myeclipse的git项目使用
  • WebStorm 2021.1.2怎么设置显示提示
  • C#如何设置程序集名称
  • 热门搜索
    关于语言艺术的手抄报 安全用电手抄报 绿色手抄报内容 讲普通话 写规范字手抄报 幸福班级手抄报 寻根乡愁手抄报 少先队员手抄报图片 清明祭奠英烈手抄报 预防登革热手抄报 科学手抄报图片