java如何发起https的get请求,post请求和put请求

2024-10-14 20:41:08

1、首先创建MyHttps的工具类

java如何发起https的get请求,post请求和put请求

3、首先写入https的get请求,参数为请求地址和请求头键值对,返回值为响应头键值对与String类型的返回内容组成的Object数组/** * 发起Https的get请求 * @param property 请求头参数 * @url 请求的地址 * @return 响应内容[Map<String, List<String>>(响应头),String(响应体)] */ public static Object[] get(String url,LinkedHashMap<String, String> property) { Map<String, List<String>> headerFields = null; StringBuffer buffer=null; try{ //创建SSLContext SSLContext sslContext=SSLContext.getInstance("TLS"); TrustManager[] tm={new MyX509TrustManager()}; //初始化 sslContext.init(null, tm, new java.security.SecureRandom());; //获取SSLSocketFactory对象 SSLSocketFactory ssf=sslContext.getSocketFactory(); 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.setSSLSocketFactory(ssf); 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如何发起https的get请求,post请求和put请求

5、另外还有一个put请求以及一个get的img下载请求不再贴出,可以再第六步的全部代码中看到,这里我讲一下https请求和http请求差异的地方,https请求,要先创建ssl套接字安全层,然后将这个安全层套在连接上,之后再进行网络连接请求

java如何发起https的get请求,post请求和put请求
猜你喜欢