http实现发送post请求,获取结果集

摘要:
head.isEmpty()){34用于{35conn.setRequestProperty;36}37}38 conn。setDoOutput;39连接。setDoInput;40//获取URLConnection对象对应的输出流41out=newPrintWriter;42//发送请求参数43out。打印44//缓冲器45out。冲洗输出流的冲洗();46//定义BufferedReader输入流以读取URL响应47in=newBufferedReader;48架线;49while((line=in.readLine())!
 1 package com.ming;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.InputStreamReader;
 5 import java.io.OutputStreamWriter;
 6 import java.io.PrintWriter;
 7 import java.net.HttpURLConnection;
 8 import java.net.URL;
 9 import java.util.Map;
10 
11 
12 public class HttpBaseUtil {
13 
14     
15     /**
16      * 向指定的url发送post方法,并获取放回值
17      * @param url 发送的url
18      * @param param 发送的参数 参数形式a=2&b=2
19      * @param head 请求头设定
20      */
21     public static String sendPostUrl(String url,String param,Map<String, String> head) throws Exception{
22         StringBuffer result=new StringBuffer();
23         PrintWriter out =null;
24         BufferedReader in=null;
25         try {
26             URL realUrl = new URL(url);
27             // 打开和URL之间的连接
28             HttpURLConnection  conn =(HttpURLConnection)realUrl.openConnection();
29             // 设置通用的请求属性
30             conn.setRequestProperty("accept", "*/*");
31             conn.setRequestProperty("connection", "Keep-Alive");
32             conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
33             if(head!=null && !head.isEmpty()){
34                 for (String key:head.keySet()){
35                     conn.setRequestProperty(key, head.get(key));
36                 }
37             }
38             conn.setDoOutput(true);
39             conn.setDoInput(true);
40             // 获取URLConnection对象对应的输出流
41             out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"UTF-8"));
42             // 发送请求参数
43             out.print(param);
44             // flush输出流的缓冲
45             out.flush();
46             // 定义BufferedReader输入流来读取URL的响应
47             in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
48             String line;
49             while ((line = in.readLine()) != null) {
50                 result.append(line);
51             }
52         } catch (Exception e) {
53             throw new Exception("发送post出现异常."+e.getMessage());
54         }
55         return result.toString();
56     }
57     
58 }
 1 import org.apache.http.HttpResponse;
 2 import org.apache.http.client.ClientProtocolException;
 3 import org.apache.http.client.HttpClient;
 4 import org.apache.http.client.ResponseHandler;
 5 import org.apache.http.client.methods.HttpUriRequest;
 6 
 7 import java.io.IOException;
 8 
 9 public class LocalHttpClient {
10 
11     private static LocalHttpClient localHttpClient;
12     protected HttpClient httpClient;
13 
14     private static int maxTotal = 100;
15     private static int maxPerRoute = 10;
16     public static void init(int maxTotal,int maxPerRoute){
17         LocalHttpClient.maxTotal = maxTotal;
18         LocalHttpClient.maxPerRoute = maxPerRoute;
19     }
20 
21     public static LocalHttpClient getInstance(){
22         if(localHttpClient != null){
23             return localHttpClient;
24         }else{
25             localHttpClient = new LocalHttpClient();
26             if(maxTotal > 0){
27                 localHttpClient.httpClient = HttpClientFactory.createHttpClient(maxTotal,maxPerRoute);
28             }else{
29                 localHttpClient.httpClient = HttpClientFactory.createHttpClient();
30             }
31             return localHttpClient;
32         }
33     }
34 
35     public HttpResponse execute(HttpUriRequest request){
36         try {
37             return httpClient.execute(request);
38         } catch (ClientProtocolException e) {
39             e.printStackTrace();
40         } catch (IOException e) {
41             e.printStackTrace();
42         }
43         return null;
44     }
45 
46     public <T> T execute(HttpUriRequest request,ResponseHandler<T> responseHandler){
47         try {
48             return httpClient.execute(request, responseHandler);
49         } catch (ClientProtocolException e) {
50             e.printStackTrace();
51         } catch (IOException e) {
52             e.printStackTrace();
53         }
54         return null;
55     }
56 }

免责声明:文章转载自《http实现发送post请求,获取结果集》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WPF从入门到放弃系列第二章 XAMLLanproxy 遍历目录漏洞 CVE-2021-3019 附批量POC下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

HTTP OPTIONS跨域请求

一、场景 今天在监测跨域代码时发现,在调用后端接口的时候会出现两次请求:OPTIONS请求和POST请求。代码如下: /// <summary> /// 自定义中间件要执行的逻辑 /// </summary> /// <param name="context"></param> /// <returns...

android http 和https请求

1 private static final int CONNECTION_TIMEOUT = 10000; 2 3 public static String doHttpGet(String serverURL) throws Exception { 4 HttpParams httpParameters...

解决SpringSecurity阻止ajax的POST和PUT请求,导致403Forbidden的问题

前言:最近在整合springboot+springsecurity,在PUT请求的时候出现了403的问题,这里记录一下解决的过程 到Spring的官网去查查SpringSecurity的参考手册看看为什么会有403的问题官网是这样解释问题的SpringSecurity默认是禁止接收POST请求的,而GET是默认可以的,官网给出两个解决方案:1是发送请求...

Apache Jmter 压力测试教程

1.官网下载安装包,地址:http://jmeter.apache.org/download_jmeter. 2.下载得到解压包,双击解压。 3.点击/bin目录下面的jmeter.bat 启动软件 4.开始压力测试: (1)右键,添加一个Thread Group  (2)添加完成后,设置线程个数,和循环次数  (3)再右键线程组,去添加Http...

【SQL注入】之SQLMAP工具的使用

(本文仅为平时学习记录,若有错误请大佬指出,如果本文能帮到你那我也是很开心啦) 一、介绍 1.SQL注入工具:明小子、啊D、罗卜头、穿山甲、SQLMAP等等 2.SQLMAP:使用python开发,开源自动化注入利用工具,支持12种数据库 ,在/plugins/dbms中可以看到支持的数据库种类,在所有注入利用工具中它是最好用的!!! 3.支持的注入类型:...

简单对象访问协议(SOAP)初级指南[转]

这篇文章带你全面回顾对象远程进程调用(ORPC)技术的历程,以帮助你理解SOAP技术的基础,以及它克服存在技术(如CORBA和DCOM)的许多缺陷的方法。随后讲述详细的SOAP编码规则,并把焦点放在SOAP是怎样映射到存在的ORPC概念上的。   引言:   当我在1984年开始把计算作为我的职业的时候,大多数程序员并不关心网络协议。但是在九十年代网络变得...