JAVA中使用POST和GET发送请求
来源:互联网 发布:铠甲原画 知乎 编辑:程序博客网 时间:2024/05/16 08:05
GET
1、创建HTTP uri构造器
protected URIBuilder ub;
2、添加发送参数
List<NameValuePair> list = new ArrayList<NameValuePair>(20);for (int i=0;i<strArr.length;i++){ String[] str2=strArr[i].split("="); if(str2.length>1){ list.add(new BasicNameValuePair(str2[0],str2[1])); }}ub.addParameters(list);
3、创建一个CloseableHttpClient发送器发送请求
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();cm.setDefaultMaxPerRoute(1000);Builder builder = RequestConfig.custom();RequestConfig config = builder.setSocketTimeout(HttpConstant.SOCKET_TIMEOUT).setConnectTimeout(HttpConstant.CONNECT_TIMEOUT).build();CloseableHttpClient client = HttpClients.custom().setMaxConnPerRoute(300).disableConnectionState().setDefaultRequestConfig(config).setConnectionManager(cm).build(); HttpGet get = new HttpGet(ub.build());client.execute(get);
POST
1、创建HTTP uri构造器
protected URIBuilder ub;
2、创建Entity对象
HttpEntity entity = new StringEntity(jsonstr, Consts.UTF_8);RequestConfig config = RequestConfig.custom().setConnectionRequestTimeout(30000) .setConnectTimeout(30000).setSocketTimeout(30000).build();HttpPost post = new HttpPost(ub.build());post.setHeader("Content-Type","application/json");post.setProtocolVersion(HttpVersion.HTTP_1_1);post.setConfig(config);post.setEntity(entity);
3、创建一个CloseableHttpClient发送器发送请求
PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();cm.setDefaultMaxPerRoute(1000);Builder builder = RequestConfig.custom();RequestConfig config = builder.setSocketTimeout(HttpConstant.SOCKET_TIMEOUT).setConnectTimeout(HttpConstant.CONNECT_TIMEOUT).build();CloseableHttpClient client = HttpClients.custom().setMaxConnPerRoute(300).disableConnectionState().setDefaultRequestConfig(config).setConnectionManager(cm).build(); /** *如果是https,则发送器需要添加证书 */ /*SSLContext context = buildSSLContext(irm);//构建证书对象CloseableHttpClient client = HttpClients.custom().setMaxConnPerRoute(300).disableConnectionState().setDefaultRequestConfig(config).setConnectionManager(cm).build().setSslcontext(context)*/client.execute(post);
/** * *构建证书对象方法 * */private SSLContext buildSSLContext(InternalReceivedMessage irm){ String certBlong = "zhangsan"; //证书所有者 String keyStorePath = ""; //商户私有密钥路径 String keypassword = ""; //商户私有密钥密码 String trustKeyStorePath = ""; //信任对象的证书路径 String trustCaStorePath = ""; //信任对象ca证书路径,可以生产信任对象证书 String trustKeypassword = ""; //信任对象证书密码 try { File jksCAFile = new File(trustKeyStorePath); if (!jksCAFile.isFile()) { File caFile = new File(trustCaStorePath); X509Certificate cert = (X509Certificate) SecurityUtils.getCertificate(caFile,"X.509"); FileOutputStream out = new FileOutputStream(jksCAFile); KeyStore ks = KeyStore.getInstance("JKS"); ks.load(null, null); ks.setCertificateEntry(certBlong, cert); // store keystore ks.store(out, trustKeypassword.toCharArray()); out.close(); } FileInputStream trustStream = new FileInputStream(jksCAFile); FileInputStream keyStream = new FileInputStream(keyStorePath); // 初始化信任库 TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509"); KeyStore trustKeyStore = KeyStore.getInstance("JKS"); trustKeyStore.load(trustStream, trustKeypassword.toCharArray()); tmf.init(trustKeyStore); // 初始化密钥库 KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509"); KeyStore ks = KeyStore.getInstance("PKCS12"); ks.load(keyStream, keypassword.toCharArray()); kmf.init(ks, keypassword.toCharArray()); SecureRandom rand = new SecureRandom(); SSLContext ctx = SSLContext.getInstance("TLS"); ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), rand); return ctx; } catch (Exception e) { logger.error("SSL上下文创建失败,请联系管理员.",e); } return null;}
http://blog.csdn.net/wangpeng047/article/details/19624529
0 0
- JAVA中使用POST和GET发送请求
- Java使用HttpClient发送Get请求和Post请求
- java 中使用URL发送get,post请求乱码问题
- Java中利用HttpURLConnection发送post和get请求
- Java使用HttpClient发送Get和Post请求
- java使用post和get方式发送http请求
- Java使用HttpURLConnection发送POST和GET请求
- Java中发送Http请求Get、Post
- 使用Java发送GET、POST请求
- 使用Java发送POST、GET请求【转】
- 使用Java发送POST、GET请求
- 使用Java发送GET、POST请求
- 使用Java发送GET、POST请求
- 使用java发送GET、POST请求
- 使用Java发送GET、POST请求
- 使用Java发送GET、POST请求
- 使用Java发送GET、POST请求
- 使用Java发送GET、POST请求
- MyBatis之使用XML配置SQL映射(一)
- onethink中给表格添加滚动条
- HDU2602(01背包)
- poj1737 Connected Graph
- git在项目开发中的常用指令
- JAVA中使用POST和GET发送请求
- 【UOJ #210】【UER #6】寻找罪犯 (2-SAT)
- UVA-1225(Digit Counting)
- Android M新特性Doze and App Standby模式详解
- MyBatis之使用XML配置SQL映射(二)CRUD映射配置
- Log日志详解分析
- 【Java基础】对象拷贝
- AOJ524(01背包)
- webstorm11 配置git步骤