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;
	}
相关推荐
程序员小崔日记3 小时前
20块钱注册一年 .COM 域名!Spaceship 最新优惠教程,支付宝即可付款(附优惠码)
服务器·腾讯云·域名
IKUN家族3 小时前
Spring MVC(一)
java·spring·mvc
实心儿儿4 小时前
Linux —— 进程间关系和守护进程
linux·运维·服务器
林浅不想努力4 小时前
LVS知识点总结
服务器·云原生·lvs
老马识途2.05 小时前
关于跨域问题的总结
java·前端
Yang96115 小时前
光缆故障快速排查实操技巧,鼎讯信通 Smart-S3 OTDR 一线使用心得
网络
Dawn-bit5 小时前
Linux磁盘管理详解
linux·运维·服务器·计算机网络·云计算
都叫我大帅哥5 小时前
Java日期时间三十年战争:从Date考古到LocalDateTime革命,以及数据库与前端的那点事儿
java
Muscleheng5 小时前
SpringBoot 集成 DeepSeek 实现 RAG 文档问答
java·spring boot·ai·springai
2501_936415696 小时前
可变参数&综合练习&斗地主游戏
java·windows·游戏