1 packagetest;2
3 importjava.io.BufferedReader;4 importjava.io.DataOutputStream;5 importjava.io.IOException;6 importjava.io.InputStreamReader;7 importjava.net.HttpURLConnection;8 importjava.net.URL;9 importjava.net.URLEncoder;10
11 importjavax.servlet.http.HttpServletRequest;12
13 importorg.apache.http.HttpEntity;14 importorg.apache.http.HttpResponse;15 importorg.apache.http.client.ClientProtocolException;16 importorg.apache.http.client.methods.HttpGet;17 importorg.apache.http.client.methods.HttpPost;18 importorg.apache.http.client.utils.HttpClientUtils;19 importorg.apache.http.entity.StringEntity;20 importorg.apache.http.impl.client.DefaultHttpClient;21 importorg.apache.http.util.EntityUtils;22
23 public classTestRequestUtil {24 //public static void main(String[] args) {25 //doGetStr("http://dzdzwxcs1.ciitc.com.cn/s/VcbrYFtK");26 //}
27 /**
28 * 接口调用 GET29 */
30 public static voidhttpURLConectionGET(String urls) {31 try{32 URL url = new URL(urls); //把字符串转换为URL请求地址
33 HttpURLConnection connection = (HttpURLConnection) url.openConnection();//打开连接
34 connection.connect();//连接会话35 //获取输入流
36 BufferedReader br = new BufferedReader(newInputStreamReader(connection.getInputStream()));37 String line;38 StringBuilder sb = newStringBuilder();39 while ((line = br.readLine()) != null) {//循环读取流
40 sb.append(line); //写入对象中
41 }42 br.close();//关闭流
43 connection.disconnect();//断开连接
44 System.out.println(sb.toString());45 } catch(Exception e) {46 e.printStackTrace();47 System.out.println("请求失败!");48 }49 }50
51 /**
52 * 接口调用 POST53 */
54 public static voidhttpURLConnectionPOST(String urls) {55 try{56 URL url = newURL(urls);57
58 //将url 以 open方法返回的urlConnection 连接强转为HttpURLConnection连接 (标识一个url所引用的远程对象连接)
59 HttpURLConnection connection = (HttpURLConnection) url.openConnection();//此时cnnection只是为一个连接对象,待连接中60
61 //设置连接输出流为true,默认false (post 请求是以流的方式隐式的传递参数)
62 connection.setDoOutput(true);63
64 //设置连接输入流为true
65 connection.setDoInput(true);66
67 //设置请求方式为post
68 connection.setRequestMethod("POST");69
70 //post请求缓存设为false
71 connection.setUseCaches(false);72
73 //设置该HttpURLConnection实例是否自动执行重定向
74 connection.setInstanceFollowRedirects(true);75
76 //设置请求头里面的各个属性 (以下为设置内容的类型,设置为经过urlEncoded编码过的from参数)77 //application/x-javascript text/xml->xml数据 application/x-javascript->json对象78 //application/x-www-form-urlencoded->表单数据
79 connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");80
81 //建立连接 (请求未开始,直到connection.getInputStream()方法调用时才发起,以上各个参数设置需在此方法之前进行)
82 connection.connect();83
84 //创建输入输出流,用于往连接里面输出携带的参数,(输出内容为?后面的内容)
85 DataOutputStream dataout = newDataOutputStream(connection.getOutputStream());86 String parm = "storeId=" + URLEncoder.encode("32", "utf-8"); //URLEncoder.encode()方法 为字符串进行编码87
88 //将参数输出到连接
89 dataout.writeBytes(parm);90
91 //输出完成后刷新并关闭流
92 dataout.flush();93 dataout.close(); //重要且易忽略步骤 (关闭流,切记!)
94
95 System.out.println(connection.getResponseCode());96
97 //连接发起请求,处理服务器响应 (从连接获取到输入流并包装为bufferedReader)
98 BufferedReader bf = new BufferedReader(newInputStreamReader(connection.getInputStream()));99 @SuppressWarnings("unused")100 String line = null;101 StringBuilder sb = new StringBuilder(); //用来存储响应数据102
103 //循环读取流,若不到结尾处
104 while ((line = bf.readLine()) != null) {105 sb.append(bf.readLine());106 }107 bf.close(); //重要且易忽略步骤 (关闭流,切记!)
108 connection.disconnect(); //销毁连接
109 System.out.println(sb.toString());110
111 } catch(Exception e) {112 e.printStackTrace();113 }114 }115
116 /**
117 * get 请求@param @paramurl@returnString@throws
118 */
119 public staticString doGetStr(String url) {120 DefaultHttpClient httpClient = newDefaultHttpClient();121 HttpGet httpGet = newHttpGet(url);122 String result = "";123
124 try{125 HttpResponse response =httpClient.execute(httpGet);126 HttpEntity entity =response.getEntity();127 if (entity != null) {128 result = EntityUtils.toString(entity, "UTF-8");129 }130 } catch(ClientProtocolException e) {131 e.printStackTrace();132 } catch(IOException e) {133 e.printStackTrace();134 } finally{135 HttpClientUtils.closeQuietly(httpClient);136 }137 returnresult;138 }139
140 /**
141 * post 请求@param @paramurl@param @paramoutStr@throws
142 */
143 public staticString doPostStr(String url, String outStr) {144 DefaultHttpClient httpClient = newDefaultHttpClient();145 HttpPost httpPost = newHttpPost();146 String result = "";147
148 try{149 httpPost.setEntity(new StringEntity(outStr, "UTF-8"));150 HttpResponse response =httpClient.execute(httpPost);151 result = EntityUtils.toString(response.getEntity(), "UTF-8");152 } catch(ClientProtocolException e) {153 e.printStackTrace();154 } catch(IOException e) {155 e.printStackTrace();156 } finally{157 HttpClientUtils.closeQuietly(httpClient);158 }159 returnresult;160 }161 }