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;
	}
相关推荐
suzhou_speeder3 小时前
企业数字化网络稳定运行与智能化管理解决方案
运维·服务器·网络·交换机·poe·poe交换机
专业开发者3 小时前
Wi-Fi 认证:为企业网络筑牢未来根基
网络
北漂IT民工_程序员_ZG3 小时前
SpringBean生命周期,动态代理
java·spring boot·spring
老华带你飞4 小时前
建筑材料管理|基于springboot 建筑材料管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·学习·spring
木心爱编程4 小时前
【Qt 5.14.2 新手实战】QTC++入门筑基——按钮与标签联动:QPushButton + QLabel 实现图片切换器
java·c++·qt
RisunJan4 小时前
Linux命令-grpck命令(验证和修复组配置文件(`/etc/group` 和 `/etc/gshadow`)完整性的工具)
linux·运维·服务器
无敌最俊朗@4 小时前
Modbus TCP关键知识点回顾
网络
JY.yuyu4 小时前
TCP/UDP协议
网络·tcp/ip·udp
椰羊~王小美4 小时前
setScale没传roudingmode,为什么会报错
java
WizLC5 小时前
【JAVA】JVM类加载器知识笔记
java·jvm·笔记