java发送http请求

java发送http请求

public class HttpClient {
	
	
	public String doGet(String urlmsg) throws IOException{
		
		HttpURLConnection connection = null;
		
		InputStream inputStream = null;
		
		BufferedReader buReader = null;
		
		String result = null;
		
		
		try {
			
			
			//创建远程连接对象
			URL url = new URL(urlmsg);
			
			//通过远程url连接对象打开一个连接,强转成HttpURLConnection类
			connection = (HttpURLConnection) url.openConnection();
			
			//设置连接方式:get
			connection.setRequestMethod("GET");
			
			//设置连接服务器超时时间
			connection.setConnectTimeout(6000);
			
			//设置读取远程返回的数据时间
			connection.setReadTimeout(6000);
			
			//发送请求
			connection.connect();
			
			//通过connection连接,获取输入流
			if(connection.getResponseCode()==200){
				
				inputStream = connection.getInputStream();
				
				//封装输入流,并指定字符集
				buReader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
				
				//存放数据
				StringBuffer stringBuffer = new StringBuffer();
				
				String temp = null;
				
				while((temp = buReader.readLine())!=null){
					
					System.out.println(temp);
					
					stringBuffer.append(temp);
					
				}
				
				result = stringBuffer.toString();
				
			}
			
			
		} catch (MalformedURLException e) {
			
			// TODO Auto-generated catch block
			e.printStackTrace();
			
		}finally{
			
			//关闭资源
			if(null!=buReader){
				
				buReader.close();
				
			}
			
			if(null!=inputStream){
				
				inputStream.close();
				
			}
			
			//关闭远程连接
			connection.disconnect();
			
		}
		return result;
		
	}
	
	
	
	public String doPost(String httpurl,String param) throws IOException{
		
		HttpURLConnection connection = null;
		
		InputStream inputStream = null;
		
		OutputStream outputStream = null;
		
		BufferedReader bufferedReader = null;
		
		String result = null;
		
		
		try {
			
			
			URL url = new URL(httpurl);
			
			//通过远程url连接对象打开连接
			connection = (HttpURLConnection) url.openConnection();
			
			//设置连接方式
			connection.setRequestMethod("POST");
			
			//设置连接主机服务器超时时间
			connection.setConnectTimeout(6000);
			
			//设置读取主机服务器返回数据超时时间
			connection.setReadTimeout(6000);
			
			//默认值:false,当向远程服务器传送数据/写数据时,需要设置成true
			connection.setDoOutput(true);
			
			//默认值为true,当向远程服务器读取数据时,需要设置成true,该参数可有可无
			connection.setDoInput(true);
			
			//设置传入参数的格式:name1=value1&name2=value2 的形式
			connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			
			// 设置鉴权信息:Authorization: Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0
            connection.setRequestProperty("Authorization", "Bearer da3efcbf-0845-4fe3-8aba-ee040be542c0");
            
            //我们请求的数据:
            String param1 = "passwd="+ URLEncoder.encode("mima", "UTF-8")+
                    "&number="+ URLEncoder.encode("123456", "UTF-8");
            
            //通过链接对象获取输出流
            outputStream = connection.getOutputStream();
            
            //通过输出流对象将参数写出去/传输出去,它是通过字节数组写出的
            outputStream.write(param1.getBytes());
            
            //通过连接对象获取一个输入流,向远程读取
            if(connection.getResponseCode()==200){
            	
            	inputStream = connection.getInputStream();
            	
            	//对输入流对象进行包装
            	bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
            	
            	StringBuffer buffer = new StringBuffer();
            	
            	String temp = null;
            	
            	//循环遍历一行一行读取数据
            	while((temp = bufferedReader.readLine())!=null){
            		
            		buffer.append(temp);
            		
            	}
            	
            	result = buffer.toString();
            	
            }
            
			
		} catch (MalformedURLException e) {
			
			// TODO Auto-generated catch block
			e.printStackTrace();
			
		}finally {
			
			//关闭资源
			if(null!=bufferedReader){
				
				bufferedReader.close();
				
			}
			
			if(null!=outputStream){
				
				outputStream.close();
				
			}
			
			if(null!=inputStream){
				
				inputStream.close();
				
			}
			
			//断开与远程地址url的连接
			connection.disconnect();
			
		}
		return result;
		
	}
	
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一拖再拖 一拖再拖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值