JAVA 通过get,post访问远程接口
2023-12-13 07:18:43
get请求 参数拼接在url ?name=value&sex=value
// httpurl=http:127.0.0.1/project
public static String doGet(String httpurl){
HttpURLConnection connection = nul;
Inputstream is = null;
BufferedReader br = null;
String result = null;//返回结果字符串
try {
//创建远程ur连接对象
URL url = new URL(httpurl);
//通过远程url连接对象打开 个连接,强转成httpURLConnection类
connection = (HttpURLConnection)url.openConnection();
//设置连接力式:get
connection.setRequestMethod("GET");
//设置连接主机服务器的超时时间:15000毫秒
connection.setConnectTimeout(15000);
//设置读取远程返回的数据时间:60000
connection.setReadTimeout(60000);
//发送请求
connection.connect():
//通过connection连接,获取输入流
if (connection.getResponseCode()==200){
is =connection.getInputStream();
//封装输入流is,并指定字符集
br= new BufferedReader(new inputStreamReader(is,"UTF-8"));
//存放数据
StringBuffer sbf = new StringBuffer();
String temp = null;
while ((temp = br.readline())!= null){
sbf.append(temp);
sbf.append("\r\n");
}
result = sbf.toString();
}
}catch (MalformedURLException e){
e.printstackTrace():
}catch (IOException e){
e.printStackTrace();
}finally {
//关闭资源
if (null != br){
try{
br.close();
}catch(IOException e){
e.printStackTrace();
}
}
if(null !=is){
try {
is.close();
}catch(IOException e){
e.printStackTrace();
}
}
connection.disconnect()://关闭远程连接
}
return result,
}
post请求 参数json传输,
//jSONObject aa=new jSONObject();
//aa.put("","");
//...
//param=aa.toString();
// httpurl=http:127.0.0.1/project
public static String dopost(string httpUrl ,String param, String token){
HttpURLConnection connection=null;
InputStream is = null;
Outputstream os = null;
BufferedReader br-=null ;
String result = null,
try{
URL url = new URL(httpUrl):
//通过远程url连接对象打开连接
connection = (HttpURLConnection) url.openConnection();
//设置连接请求方式
connection.setRequestMethod("POST"):
//设置连接主机服务器超时时间:15000毫秒
connection.setConnectTimeout(15000);
//设置读取主机服务器返回数据超时时间:60000毫秒
connection.setReadTimeout(60000);
//默认值为:false,当向远程服务器传送数据/写数据时,需要设置true
connection.setDoOutput(true);
//默认值为:true,当前向远程服务读取数据时,设置为true,该参教可有可无
connection.setDoInput(true);
// 设置传入参教的格式请求参数应该是json 的形式。
connection.setRequestPraperty("Content-Type","application/json);
connecion setRequestPraperty("Charsert"."UTF-8");
// 设置Token(票眠)信息:Aothorization
if(token != null){
connection.setRequestProperty( "Authorization", token);
}
//通过连接对象获取一个输出流
os = connection.getOutputStream();
os.write(param.getBytes("UTF-8"));
if(connection.getResponseCode() == 200){
is = connection.getInputstream();
StringBuffer sbf = new StringBuffer();
String temp = null;
//备环遍历一行一行读取数据
while ((temp =br.readline())!= null){
sbf.append(temp);
sbf.append("\r\n");
}
result =sbf.toString();
} else {
System.out.println("连接失败");
}
}catch (MalformedURLException e){
e.printStackTrace():
}catch (IOException e){
e.printStackTrace();
}finally (
//关闭资源
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
if (null != os){
try{
os.close():
}catch (IOException e){
e.printStackTrace();
}
}
if (null != is){
try{
is.close():
}catch (IOException e){
e.printStackTrace();
}
}
connecion.disconnect();
}
return result;
}
post 参数json传输,
//jSONObject aa=new jSONObject();
//aa.put("","");
//...
//param=aa.toString();
// httpurl=http:127.0.0.1/project
public static String doGet(String httpurl, String param){
String username="123456";
String password="123456;
String auth=username +":"+password;
String encodeAuth=new BASE64Encoder().encode(auth.getBytes());
String authHeader="Basic "+encodeAuth;
Outputstream os = null;
HttpURLConnection connection = null
InputStream is = null;
BufferedReader br= nul);
String result= null;// 返回结果字符串
try{
//创建远程url连接对象
URL url = new URL(httpurl);
//通过远程url连接对象打开一个连接,强转成HttpURLConnectión类
connection =(HttpURLConnectión) url.openConnection();
//设置连接方式:get
connection.setRequestMethod("GET");
//发送http请求时添加Authorization标头
connection.setRequestProperty("Authorization",authHeader);
//设置连接主机服务器超时时间:15000毫秒
connection.setConnectTimeout(15000);
//设置读取主机服务器返回数据超时时间:60000毫秒
connection.setReadTimeout(60000);
//默认值为:false,当向远程服务器传送数据/写数据时,需要设置true
connection.setDoOutput(true);
//默认值为:true,当前向远程服务读取数据时,设置为true,该参教可有可无
connection.setDoInput(true);
// 设置传入参教的格式请求参数应该是json 的形式。
connection setRequestPraperty("Content-Type","application/json);
connecion setRequestPraperty("Charsert"."UTF-8");
// 通过连接对象获取一个输出流
os = connection.getOutputStream();
//通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
os.write(param.getBytes("utf-8"));
connection.connect();
//通过connection连接,获取输入流
if (connection.getResponseCode() == 200){
is = connection.getInputStream();
//封装输入流is,并指定字符集
br = new BufferedReader(new inputStreamReader(is, "UTF-8");
//存放数据
StringBuffer sbf = new StringBuffer();
String temp = null;
while ((temp = br.readLine()) != nul){
sbf.append(temp):
sbf.append("\r\n");
}
result= sbf.tostring();
}
}catch (MalformedURLException e){
e.printStackTrace();
}catch (IOException e){
e.printstackTrace();
}finally (
//关闭资源
if (null != br){
try{
br.close();
}I catch (IOException e){
e.printStackTrace();
}
}
if (null != os){
try{
os.close():
}catch (IOException e){
e.printStackTrace();
}
}
if (null != is){
try{
is.close():
}catch (IOException e){
e.printStackTrace();
}
}
connecion.disconnect();
}
return result;
}
文章来源:https://blog.csdn.net/m0_64081550/article/details/134861583
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!