JAVA 通过get,post访问远程接口

get请求 参数拼接在url ?name=value&sex=value

q 复制代码
// 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传输,

1 复制代码
	//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传输,

1 复制代码
	//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;
	}
相关推荐
阿伟*rui11 分钟前
配置管理,雪崩问题分析,sentinel的使用
java·spring boot·sentinel
九河云1 小时前
AWS账号注册费用详解:新用户是否需要付费?
服务器·云计算·aws
Lary_Rock1 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
幺零九零零2 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
XiaoLeisj2 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
paopaokaka_luck2 小时前
【360】基于springboot的志愿服务管理系统
java·spring boot·后端·spring·毕业设计
dayouziei2 小时前
java的类加载机制的学习
java·学习
热爱跑步的恒川2 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Yaml44 小时前
Spring Boot 与 Vue 共筑二手书籍交易卓越平台
java·spring boot·后端·mysql·spring·vue·二手书籍