java 发送http和https请求的实例
作者:一包大豫竹 时间:2023-11-29 12:46:52
HTTP请求:
如果需要Json格式的自己转下,度娘上N种姿势…
//处理http请求 requestUrl为请求地址 requestMethod请求方式,值为"GET"或"POST"
public static String httpRequest(String requestUrl,String requestMethod,String outputStr){
StringBuffer buffer=null;
try{
URL url=new URL(requestUrl);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setRequestMethod(requestMethod);
conn.connect();
//往服务器端写内容 也就是发起http请求需要带的参数
if(null!=outputStr){
OutputStream os=conn.getOutputStream();
os.write(outputStr.getBytes("utf-8"));
os.close();
}
//读取服务器端返回的内容
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();
}
return buffer.toString();
}
HTTPS请求:
1、https和http的区别我这里就不介绍了,在java 中访问https链接的话需要有相应的SSL证书,如果没有就无法访问(使用http访问https会返回403),所以我们要先自定义一个信任管理器。实现java自带的X509TrustManger接口,代码:
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.net.ssl.X509TrustManager;
public class MyX509TrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
// TODO Auto-generated method stub
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType)
throws CertificateException {
// TODO Auto-generated method stub
}
@Override
public X509Certificate[] getAcceptedIssuers() {
// TODO Auto-generated method stub
return null;
}
}
2、然后我们就可以使用https请求了:
/*
* 处理https GET/POST请求
* 请求地址、请求方法、参数
* */
public static String httpsRequest(String requestUrl,String requestMethod,String outputStr){
StringBuffer buffer=null;
try{
//创建SSLContext
SSLContext sslContext=SSLContext.getInstance("SSL");
TrustManager[] tm={new MyX509TrustManager()};
//初始化
sslContext.init(null, tm, new java.security.SecureRandom());;
//获取SSLSocketFactory对象
SSLSocketFactory ssf=sslContext.getSocketFactory();
URL url=new URL(requestUrl);
HttpsURLConnection conn=(HttpsURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setRequestMethod(requestMethod);
//设置当前实例使用的SSLSoctetFactory
conn.setSSLSocketFactory(ssf);
conn.connect();
//往服务器端写内容
if(null!=outputStr){
OutputStream os=conn.getOutputStream();
os.write(outputStr.getBytes("utf-8"));
os.close();
}
//读取服务器端返回的内容
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();
}
return buffer.toString();
}
来源:http://blog.csdn.net/qq_33583322/article/details/78600670
标签:java,发送,http,https,请求
0
投稿
猜你喜欢
Android编程下拉菜单spinner用法小结(附2则示例)
2022-11-02 20:25:45
简单实现Android弹出菜单效果
2023-01-11 18:58:46
C# 生成随机数的代码
2021-06-16 06:05:43
解析spring加载bean流程的方法
2023-11-29 13:50:32
Spring Boot如何通过CORS处理跨域问题
2021-09-10 02:44:15
深入理解Java中的final关键字_动力节点Java学院整理
2022-05-05 23:18:24
IntelliJ IDEA 2020.2正式发布,两点多多总能助你提效
2023-08-30 18:15:18
C#值类型、引用类型中的Equals和==的区别浅析
2022-09-05 23:04:24
详解HDFS多文件Join操作的实例
2023-09-20 07:44:14
Spring框架基于注解开发CRUD详解
2021-08-04 03:39:03
Java WebService 简单实例(附实例代码)
2023-01-25 07:52:18
SpringBoot自动装配原理小结
2023-11-18 16:54:06
WPF+SkiaSharp实现自绘拖曳小球
2023-03-25 01:31:14
一篇超详细的SpringBoot整合MybatisPlus的文章
2023-02-26 11:04:35
Android编程之canvas绘制各种图形(点,直线,弧,圆,椭圆,文字,矩形,多边形,曲线,圆角矩形)
2023-10-16 12:16:14
c#获取本机的IP地址的代码
2021-08-21 08:37:07
SpringBoot后端进行数据校验JSR303的使用详解
2022-02-19 01:15:31
C#获取日期的星期名称实例代码
2022-10-22 13:25:53
Android开发SavedState Jetpack状态保存利器
2023-02-12 19:49:49
Qt TCP实现简单通信功能
2021-07-07 02:16:30