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;
	}
相关推荐
知之则吱吱26 分钟前
亚马逊AWS云服务器高效使用指南:最大限度降低成本的实战策略
服务器·云计算·aws
pan_junbiao30 分钟前
Spring框架的设计模式
java·spring·设计模式
远方160931 分钟前
0x-2-Oracle Linux 9上安装JDK配置环境变量
java·linux·oracle
北执南念36 分钟前
CompletableFuture+线程池使用案列
java
cui_win37 分钟前
每日一令:Linux 极简通关指南 - 汇总
linux·运维·服务器
狐5740 分钟前
2025-06-02-IP 地址规划及案例分析
网络·网络协议·tcp/ip
知星小度S1 小时前
Linux权限探秘:驾驭权限模型,筑牢系统安全
linux·运维·服务器
黎茗Dawn1 小时前
5.子网划分及分片相关计算
网络·智能路由器
黄交大彭于晏1 小时前
发送文件脚本源码版本
java·linux·windows
钮钴禄·爱因斯晨1 小时前
Java 面向对象进阶之多态:从概念到实践的深度解析
java·开发语言·数据结构