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;
	}
相关推荐
chuan.bai10 分钟前
Java RAG 实战附录:qwen3 与 bge-m3 模型切换指南
java·人工智能·算法
SL_staff12 分钟前
销售知识管理的断点分析与技术解法:从3天找话术到秒级检索
java·开源·github
荣码13 分钟前
向量数据库选型:4种方案全测了,选错重来成本最高
java·python
rannn_11115 分钟前
【力扣hot100】二叉树专题+总结
java·算法·leetcode·二叉树
摇滚侠40 分钟前
《Docker技术入门与实战 第4版》阅读笔记 6 使用 Dockerfile 创建镜像 2
java·笔记·docker
caimouse42 分钟前
ReactOS 窗口系统架构分析
服务器·c语言
余额瞒着我当琳1 小时前
C++--vector第二讲:手写 C++ STL:vector 源码剖析与迭代器失效分析
android·java·c++
王志来137944730081 小时前
聚焦五大核心场景:工控服务器机箱平台的垂直深耕之路
运维·服务器·python
资源大佬星 课it1 小时前
黑马 Java+AI新版V16零基础就业班视频课程百度网盘下载
java·开发语言·人工智能
二十雨辰1 小时前
[Java]-微服务面试题
java·开发语言·微服务