- 第一步:创建一个HttpURLConnection 对象
- 4. URL url = new URL("http://localhost:8080/TestHttpURLConnectionPro/index.jsp");
- 5.
- //这里实际上是没有打开连接,而是创建一个HttpURLConnection 对象
- 6. HttpURLConnection httpUrlConnection = (HttpURLConnection )url.openConnection();
- 7.
- 下面是定义一些基本的常量
- public class HttpUtils {
/*HTTP Request Method*/
public static final String METHOD_POST = "POST";
public static final String METHOD_GET = "GET";
/*HTTP Request Property*/
public static final String PROPERTY_KEY_01 = "Accept";
public static final String PROPERTY_KEY_02 = "Accept-Language";
public static final String PROPERTY_KEY_03 = "Charset";
public static final String PROPERTY_KEY_04 = "User-Agent";
public static final String PROPERTY_KEY_05 = "Connection";
public static final String PROPERTY_VALUE_01_A = "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
public static final String PROPERTY_VALUE_02_A = "zh-CN";
public static final String PROPERTY_VALUE_03_A = "UTF-8";
public static final String PROPERTY_VALUE_03_B = "GBK";
public static final String PROPERTY_VALUE_03_C = "gb2312";
public static final String PROPERTY_VALUE_04_A = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.126 Safari/533.4 ChromePlus/1.4.1.0)";
public static final String PROPERTY_VALUE_05_A = "Keep-Alive";
/*File Operation*/
public static final int SIZE_READ_BUFFER = 1024;
}
第二步:填写请求报头
//设置方法
httpURLConnection.setRequestMethod("post");
//设置连接时间
httpURLConnection.setConnectTimeout(delayTime);
//设置一些基本的属性
httpURLConnection.setRequestProperty(HttpUtils.PROPERTY_KEY_01, HttpUtils.PROPERTY_VALUE_01_A);
httpURLConnection.setRequestProperty(HttpUtils.PROPERTY_KEY_02, HttpUtils.PROPERTY_VALUE_02_A);
httpURLConnection.setRequestProperty(HttpUtils.PROPERTY_KEY_03, HttpUtils.PROPERTY_VALUE_03_A);
httpURLConnection.setRequestProperty(HttpUtils.PROPERTY_KEY_04, HttpUtils.PROPERTY_VALUE_04_A);
httpURLConnection.setRequestProperty(HttpUtils.PROPERTY_KEY_05, HttpUtils.PROPERTY_VALUE_05_A);
httpURLConnection.setRequestProperty(HttpUtils.PROPERTY_KEY_02, HttpUtils.PROPERTY_VALUE_02_A);
httpURLConnection.setRequestProperty(HttpUtils.PROPERTY_KEY_03, HttpUtils.PROPERTY_VALUE_03_A);
httpURLConnection.setRequestProperty(HttpUtils.PROPERTY_KEY_04, HttpUtils.PROPERTY_VALUE_04_A);
httpURLConnection.setRequestProperty(HttpUtils.PROPERTY_KEY_05, HttpUtils.PROPERTY_VALUE_05_A);
//以下是对post请求的一些设置
urlCon.setUseCaches(false);
urlCon.setDoInput(true);
urlCon.setDoOutput(true);
第三步:建立tcp连接:(可是我实际做的时候:openConnection就已经建立连接了,这个connect建立连接估计是再确认一下是否连接)
httpURLConnection.connect();
urlCon.getOutputStream().write(postContent, 0, postContent.length);
urlCon.getOutputStream().flush();
urlCon.getOutputStream().close();
urlCon.getOutputStream().flush();
urlCon.getOutputStream().close();
注意与get的不同之处
第四步:获取输入流:读取正文实体
在这之前,你可以调用:httpRequest.getResponseCode();看返回的状态。
httpURLConnection.getInputStream();
第五部:用ByteArrayOutputStream baos = new ByteArrayOutputStream();把数据存储下来。注意这里还是byte流。