HTTP请求 的一系列方法总结
1 /** 2 * *******************************传统请求--开始************************************** 3 * */ 4 5 /** 6 * HttpClient 发送 Post 请求 7 * @param url 路径:String 8 * @param mapParam 参数:java.util.Map 9 * @return 10 */ 11 public static String sendClientPost(String url,Map<String,String> headers,Map<String,String> mapParam){ 12 return httpPost(url, headers,new JSON (mapParam), false); 13 } 14 15 /** 16 * HttpClient 发送 Post 请求 17 * @param url 路径:String 18 * @param Json Param 参数:org.json.JSON 19 * @return 20 */ 21 public static String sendClientPost(String url,Map<String,String> headers,JSON Json Param){ 22 return httpPost(url, headers,Json Param, false); 23 } 24 25 26 /** 27 * HttpClient 发送 Get 请求 28 * @param url 路径:String 29 * @return 30 */ 31 public static String sendClientGet(String url){ 32 return httpGet(url,null); 33 } 34 /** 35 * HttpClient 发送 Get 请求 36 * @param url 路径:String 37 * @param headers Map<String,String> 38 * @return 39 */ 40 public static String sendClientGet(String url,Map<String,String> headers){ 41 return httpGet(url,headers); 42 } 43 44 /** 45 * HttpClient 发送 Delete 请求 46 * @param url 路径:String 47 * @return 48 */ 49 public static String sendClientDelete(String url){ 50 return httpDelete(url,null); 51 } 52 /** 53 * HttpClient 发送 Delete 请求 54 * @param url 路径:String 55 * @param headers Map<String,String> 56 * @return 57 */ 58 public static String sendClientDelete(String url,Map<String,String> headers){ 59 return httpDelete(url,headers); 60 } 61 62 63 /** 64 * urlConnectionGet 65 * @param url 路径 66 * @return 67 */ 68 public static String sendConnectionGet(String url,String param){ 69 return sendGet(url,param); 70 } 71 72 /** 73 * 向指定 URL 发送POST方法的请求 74 * @param url 发送请求的 URL 75 * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 76 * @return 所代表远程资源的响应结果 77 */ 78 public static String sendConnectionPost(String url,String param){ 79 return sendPost(url,param); 80 } 81 /** 82 * *******************************传统请求--结束************************************** 83 * */ 84 85 86 /** 87 * *******************************Jsoup请求--开始************************************** 88 * */ 89 90 /** 91 * 发送 POST 请求 92 * @param url 请求地址 93 * @param cookie cookie:String 94 * @param headers 头信息:Map<String,String> 95 * @param params 参数:Map<String, > 96 * @return String 97 */ 98 public static String sendJsoupPost(String url,String cookie,Map<String,String> headers,Map<String, > params,boolean isJsonParam) { 99 String sendRequest = sendRequest(url, cookie, headers,params, "POST",isJsonParam); 100 return sendRequest; 101 } 102 103 /** 104 * 发送 POST 请求 105 * @param url 请求地址 106 * @param headers 头信息:Map<String,String> 107 * @param params 参数:Map<String, > 108 * @return String 109 */ 110 public static String sendJsoupPost(String url,Map<String,String> headers,Map<String, > params,boolean isJsonParam) { 111 String sendRequest = sendRequest(url, null, headers,params, "POST", isJsonParam); 112 return sendRequest; 113 } 114 115 /** 116 * 发送 POST 请求 117 * @param url 请求地址 118 * @param cookie cookie:String 119 * @param headers 头信息:Map<String,String> 120 * @param params 参数:Map<String, > 121 * @return String 122 */ 123 public static String sendJsoupPost(String url,Map<String, > params,boolean isJsonParam) { 124 String sendRequest = sendRequest(url, null, null,params, "POST", isJsonParam); 125 return sendRequest; 126 } 127 128 129 /** 130 * 发送 POST 请求 131 * @param url 请求地址 132 * @return String 133 */ 134 public static String sendJsoupPost(String url) { 135 String sendRequest = sendRequest(url, null, null,null, "POST",false); 136 return sendRequest; 137 } 138 139 140 /** 141 * 发送 GET 请求 142 * @param url 请求地址: String 143 * @param cookie cookie:String 144 * @param headers 头信息:Map<String,String> 145 * @param params 参数:Map<String, > 146 * @return String 147 */ 148 public static String sendJsoupGet(String url,String cookie,Map<String,String> headers,Map<String, > params) { 149 String sendRequest = sendRequest(url, cookie, headers,params, "GET",false); 150 return sendRequest; 151 } 152 153 /** 154 * 发送 GET 请求 155 * @param url 请求地址: String 156 * @param headers 头信息:Map<String,String> 157 * @param params 参数:Map<String, > 158 * @return String 159 */ 160 public static String sendJsoupGet(String url,Map<String,String> headers,Map<String, > params) { 161 String sendRequest = sendRequest(url, null, headers,params, "GET",false); 162 return sendRequest; 163 } 164 165 /** 166 * 发送 GET 请求 167 * @param url 请求地址: String 168 * @return String 169 */ 170 public static String sendJsoupGet(String url) { 171 String sendRequest = sendRequest(url, null, null,null, "GET",false); 172 return sendRequest; 173 } 174 175 /** 176 * 发送 GET 请求 177 * @param url 请求地址: String 178 * @param params 参数:Map<String, > 179 * @return String 180 */ 181 public static String sendJsoupGet(String url,Map<String, > params) { 182 String sendRequest = sendRequest(url, null, null,params, "GET",false); 183 return sendRequest; 184 } 185 186 /** 187 * *******************************Jsoup请求--结束************************************** 188 * */ 189 190 191 /** 192 * *******************************获取网页对象--开始************************************** 193 * */ 194 195 /** 196 * 发送 GET 请求 197 * @param url 请求地址: String 198 * @return Document 199 */ 200 public static Document sendJsoupGetDocument(String url) { 201 Document sendRequestDocument = sendRequestDocument(url, null, null,null, "GET",false); 202 return sendRequestDocument; 203 } 204 205 /** 206 * 发送 GET 请求 207 * @param url 请求地址: String 208 * @param cookie cookie:String 209 * @param headers 头信息:Map<String,String> 210 * @param params 参数:Map<String, > 211 * @return Document 212 */ 213 public static Document sendJsoupGetDocument(String url,String cookie,Map<String,String> headers,Map<String, > params) { 214 Document sendRequest = sendRequestDocument(url, cookie, headers,params, "GET",false); 215 return sendRequest; 216 } 217 218 /** 219 * 发送 POST 请求 220 * @param url 请求地址: String 221 * @return Document 222 */ 223 public static Document sendJsoupPostDocument(String url) { 224 Document sendRequestDocument = sendRequestDocument(url, null, null,null, "POST",false); 225 return sendRequestDocument; 226 } 227 228 /** 229 * 发送 POST 请求 230 * @param url 请求地址 231 * @param cookie cookie:String 232 * @param headers 头信息:Map<String,String> 233 * @param params 参数:Map<String, > 234 * @return Document 235 */ 236 public static Document sendJsoupPostDocument(String url,String cookie,Map<String,String> headers,Map<String, > params,boolean isJsonParam) { 237 Document sendRequest = sendRequestDocument(url, cookie, headers,params, "POST", isJsonParam); 238 return sendRequest; 239 } 240 241 242 /** 243 * *******************************获取网页对象--结束************************************** 244 * */ 245 246 247 248 249 250 251 252 /** 253 * post请求 254 * @param url url地址 255 * @param jsonParam 参数 256 * @param noNeedResponse 不需要返回结果 257 * @return 258 */ 259 private static String httpPost(String url,Map<String,String> headers,JSON jsonParam, boolean noNeedResponse){ 260 //post请求返回结果 261 CloseableHttpClient httpClient = HttpClients.createDefault(); 262 // DefaultHttpClient httpClient = new DefaultHttpClient(); 263 String jsonResult = null; 264 HttpPost method = new HttpPost(url); 265 266 if(headers!=null){ 267 Set<String> keySet = headers.keySet(); 268 for (String key : keySet) { 269 method.addHeader(key, headers.get(key)); 270 } 271 } 272 try { 273 if (null != jsonParam) { 274 //解决中文乱码问题 275 StringEntity entity = new StringEntity(jsonParam.toString(), "UTF-8"); 276 entity.setContentEncoding("UTF-8"); 277 entity.setContentType("application/json"); 278 method.setEntity(entity); 279 } 280 HttpResponse result = httpClient.execute(method); 281 url = URLDecoder.decode(url, "UTF-8"); 282 /**请求发送成功,并得到响应**/ 283 //if (result.getStatusLine().getStatusCode() == 200) { 284 try { 285 /**读取服务器返回过来的json字符串数据**/ 286 jsonResult = EntityUtils.toString(result.getEntity()); 287 if (noNeedResponse) { 288 return null; 289 } 290 /**把json字符串转换成json对象**/ 291 } catch (Exception e) { 292 logger.error("HttpPost请求提交失败:" + url, e); 293 } 294 //} 295 } catch (Exception e) { 296 logger.error("HttpPost请求提交失败:" + url, e); 297 } 298 return jsonResult; 299 } 300 301 302 /** 303 * 发送get请求 304 * @param url 路径 305 * @return 306 */ 307 private static String httpGet(String url,Map<String,String> headers){ 308 //get请求返回结果 309 String jsonResult = null; 310 try { 311 CloseableHttpClient httpClient = HttpClients.createDefault(); 312 // DefaultHttpClient client = new DefaultHttpClient(); 313 //发送get请求 314 HttpGet request = new HttpGet(url); 315 if(headers!=null){ 316 Set<String> keySet = headers.keySet(); 317 for (String key : keySet) { 318 request.addHeader(key, headers.get(key)); 319 } 320 } 321 322 HttpResponse response = httpClient.execute(request); 323 324 /**请求发送成功,并得到响应**/ 325 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 326 /**读取服务器返回过来的json字符串数据**/ 327 jsonResult = EntityUtils.toString(response.getEntity()); 328 } else { 329 logger.error("HttpGet请求提交失败:" + url); 330 } 331 } catch (Exception e) { 332 logger.error("HttpGet请求提交失败:" + url, e); 333 } 334 return jsonResult; 335 } 336 337 /** 338 * 发送get请求 339 * @param url 路径 340 * @return 341 */ 342 private static String httpDelete(String url,Map<String,String> headers){ 343 //get请求返回结果 344 String jsonResult = null; 345 try { 346 CloseableHttpClient httpClient = HttpClients.createDefault(); 347 // DefaultHttpClient client = new DefaultHttpClient(); 348 //发送get请求 349 HttpDelete request = new HttpDelete(url); 350 if(headers!=null){ 351 Set<String> keySet = headers.keySet(); 352 for (String key : keySet) { 353 request.addHeader(key, headers.get(key)); 354 } 355 } 356 357 HttpResponse response = httpClient.execute(request); 358 359 /**请求发送成功,并得到响应**/ 360 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 361 /**读取服务器返回过来的json字符串数据**/ 362 jsonResult = EntityUtils.toString(response.getEntity()); 363 } else { 364 logger.error("HttpDelete请求提交失败:" + url); 365 } 366 } catch (Exception e) { 367 logger.error("HttpDelete请求提交失败:" + url, e); 368 } 369 return jsonResult; 370 } 371 372 /** 373 * 向指定URL发送GET方法的请求 374 * @param url 发送请求的URL 375 * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 376 * @return URL 所代表远程资源的响应结果 377 */ 378 private static String sendGet(String url, String param) { 379 380 String result = ""; 381 BufferedReader in = null; 382 try { 383 String urlNameString = url + "?" + param; 384 URL realUrl = new URL(urlNameString); 385 // 打开和URL之间的连接 386 URLConnection connection = realUrl.openConnection(); 387 // 设置通用的请求属性 388 connection.setRequestProperty("accept", "*/*"); 389 connection.setRequestProperty("connection", "Keep-Alive"); 390 connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); 391 // 建立实际的连接 392 connection.connect(); 393 // 获取所有响应头字段 394 // Map<String, List<String>> map = connection.getHeaderFields(); 395 // 遍历所有的响应头字段 396 // 定义 BufferedReader输入流来读取URL的响应 397 in = new BufferedReader(new InputStreamReader(connection.getInputStream(),"UTF-8")); 398 String line; 399 while ((line = in.readLine()) != null) { 400 result += line; 401 } 402 } catch (Exception e) { 403 System.out.println("发送GET请求出现异常!" + e); 404 e.printStackTrace(); 405 } 406 // 使用finally块来关闭输入流 407 finally { 408 try { 409 if (in != null) { 410 in.close(); 411 } 412 } catch (Exception e2) { 413 e2.printStackTrace(); 414 } 415 } 416 return result; 417 } 418 419 420 /** 421 * 向指定 URL 发送POST方法的请求 422 * @param url 发送请求的 URL 423 * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 424 * @return 所代表远程资源的响应结果 425 */ 426 private static String sendPost(String url, String param) { 427 428 PrintWriter out = null; 429 BufferedReader in = null; 430 String result = ""; 431 try { 432 URL realUrl = new URL(url); 433 // 打开和URL之间的连接 434 URLConnection conn = realUrl.openConnection(); 435 // 设置通用的请求属性 436 conn.setRequestProperty("accept", "*/*"); 437 conn.setRequestProperty("connection", "Keep-Alive"); 438 conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); 439 // 发送POST请求必须设置如下两行 440 conn.setDoOutput(true); 441 conn.setDoInput(true); 442 // 获取URLConnection对象对应的输出流 443 out = new PrintWriter(conn.getOutputStream()); 444 // 发送请求参数 445 out.print(param); 446 // flush输出流的缓冲 447 out.flush(); 448 // 定义BufferedReader输入流来读取URL的响应 449 in = new BufferedReader(new InputStreamReader(conn.getInputStream())); 450 String line; 451 while ((line = in.readLine()) != null) { 452 result += line; 453 } 454 } catch (Exception e) { 455 System.out.println("发送 POST 请求出现异常!"+e); 456 e.printStackTrace(); 457 }finally{ 458 try{ 459
继续阅读与本文标签相同的文章
上一篇 :
利用Python给自己写一款不一样的吃鸡“外挂”
-
Linux CentOS7 httpd 服务配置注释
2026-05-19栏目: 教程
-
linux端口查询
2026-05-19栏目: 教程
-
【Shell】检查软件包是否安装
2026-05-19栏目: 教程
-
X-Pack Spark 监控指标详解
2026-05-19栏目: 教程
-
招募令:阿里云MVP全球招募中,我们的征途是星辰大海!
2026-05-19栏目: 教程
