使用java模拟向web服务器发送get和post请求

原创 2014年04月17日 17:08:25
新手试试水,写的不好的地方还望各位大神指教。


package com.weixin.base.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;


/**
 * 实现http连接
 * 
 * @author dong
 * 
 */
public class HttpImpl implements Http {
	/* (non-Javadoc)
	 * @see com.weixin.base.util.HttpAPI#sendGet(java.lang.String)
	 */
	@Override
	public String sendGet(String requestUrl) {
		StringBuffer buffer = new StringBuffer();
		try {
			URL url = new URL(requestUrl);
			
			//获得资源输入流
			InputStream inputStream = url.openStream();
			
			// 将返回的输入流转换成字符串
			InputStreamReader inputStreamReader = new InputStreamReader(
					inputStream, "utf-8");
			BufferedReader bufferedReader = new BufferedReader(
					inputStreamReader);

			String str = null;
			while ((str = bufferedReader.readLine()) != null) {
				buffer.append(str);
			}
			bufferedReader.close();
			inputStreamReader.close();
			// 释放资源
			inputStream.close();
			inputStream = null;
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return buffer.toString();
	}

	/* (non-Javadoc)
	 * @see com.weixin.base.util.HttpAPI#sendPost(java.lang.String, java.lang.String)
	 */
	@Override
	public String sendPost(String requestUrl, String outputStr) {
		StringBuffer buffer = new StringBuffer();

		try {
			URL url = new URL(requestUrl);
			URLConnection httpUrlConn = url.openConnection();
			//
			httpUrlConn.setDoOutput(true);
			httpUrlConn.setDoInput(true);
			
			OutputStream outputStream = httpUrlConn.getOutputStream();
			// 当有数据需要提交时
			if (null != outputStr) {
				// 注意编码格式,防止中文乱码
				outputStream.write(outputStr.getBytes("UTF-8"));	
			}
			outputStream.close();

			// 将返回的输入流转换成字符串
			InputStream inputStream = httpUrlConn.getInputStream();
			InputStreamReader inputStreamReader = new InputStreamReader(
					inputStream, "utf-8");
			BufferedReader bufferedReader = new BufferedReader(
					inputStreamReader);

			String str = null;
			while ((str = bufferedReader.readLine()) != null) {
				buffer.append(str);
			}
			bufferedReader.close();
			inputStreamReader.close();
			// 释放资源
			inputStream.close();
			inputStream = null;
			// httpUrlConn.;
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return buffer.toString();
	}

	public static void main(String[] args) {

	}
}




                    

使用HttpURLConnection向服务器发送post和get请求

HttpConnection的请求方式主要有两种,get和post,post请求和get请求的最大不同就是提交请求信息的方式,post是通过把请求信息封装在http请求头中发送出去的,get请求是把请...
  • ljw124213
  • ljw124213
  • 2016年08月22日 20:27
  • 2124

Java使用HttpClient发送Get和Post请求

package com.taotao.httpClient.demo;import java.io.IOException; import java.io.UnsupportedEncodingExc...
  • liuxia8811
  • liuxia8811
  • 2017年02月22日 08:54
  • 4485

JAVA 发送 POST、GET请求

GET请求:GET请求会向服务器发索取数据的请求,从而来获取信息,该请求就像数据库的select操作一样,只是用来查询一下数据,不会修改、增加数据,不会影响资源的内容,即该请求不会产生副作用。无论进行...
  • edc0228
  • edc0228
  • 2017年04月17日 10:04
  • 5211

java发送http的get、post请求,测试端口是否通

http://www.cnblogs.com/zhuawang/archive/2012/12/08/2809380.html Http请求类 package wzh.Http; impo...
  • huoyuanshen
  • huoyuanshen
  • 2016年07月19日 14:21
  • 3106

Java后台模拟向Servlet发送POST文件上传请求

在某些情况下,需要用Java applicatioin来模拟form,向服务器(本文以servlet为例)发送http post请求,包括提交表单域中的数据以及上传文件。如果仅仅是传递form中的数据...
  • bbbbln
  • bbbbln
  • 2016年11月20日 17:26
  • 1384

JAVA中使用POST和GET发送请求

HTTP和HTTPS区别HTTP和HTTPS最主要的区别是前者发送之前需要给发送器添加证书,而后者不需要。使用POST和GET发送请求创建一个CloseableHttpClient发送器Pooling...
  • qq32933432
  • qq32933432
  • 2016年07月02日 23:20
  • 2215

模拟请求 get 和 post 发送 xml\json\a=1&b=2&c= 等形式参数,代理设置

后台post发送XML
  • bestcxx
  • bestcxx
  • 2015年12月15日 10:18
  • 679

java客户端数据发送到服务器(POST请求)总结

java客户端数据发送到服务器(POST请求)总结 1.如果不设置Content-type,默认是:application/x-www-form-urlencoded。 2.GET请求的参数与对应的值...
  • xingjiyuan26
  • xingjiyuan26
  • 2015年01月08日 16:33
  • 16665

MFC使用HttpGet和HttpPost方法与服务器通信

处理过程封装到CHttpClient类中,同时支持http和https
  • MaxWoods
  • MaxWoods
  • 2014年10月24日 09:22
  • 15828

Ajax中Get请求与Post请求的区别

我们在使用Ajax时,当我们向服务器发送数据时,我们可以采用Get方式请求服务器,也可以使用Post方式请求服务器.那么,我们什么时候该采用Get方式,什么时候该采用Post方式呢? ...
  • wwsscc168
  • wwsscc168
  • 2016年02月15日 17:08
  • 1597
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用java模拟向web服务器发送get和post请求
举报原因:
原因补充:

(最多只允许输入30个字)