• HttpClient 4.5.3 get和post请求https post


    HttpCilent 4.5.3  get 请求 post 请求,https post请求,不用参数类型的post请求

    GET请求

    CloseableHttpClient httpCilent = HttpClients.createDefault();//Creates CloseableHttpClient instance with default configuration.
    HttpGet httpGet = new HttpGet("http://www.baidu.com");
    try {
    	httpCilent.execute(httpGet);
    } catch (IOException e) {
    	e.printStackTrace();
    }finally {
    	try {
    		httpCilent.close();//释放资源
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }
    

     GET 设置 超时时间

    CloseableHttpClient httpCilent2 = HttpClients.createDefault();
    		RequestConfig requestConfig = RequestConfig.custom()
    				.setConnectTimeout(5000)   //设置连接超时时间
    				.setConnectionRequestTimeout(5000) // 设置请求超时时间
    				.setSocketTimeout(5000)
    				.setRedirectsEnabled(true)//默认允许自动重定向
    				.build();
    		HttpGet httpGet2 = new HttpGet("http://www.baidu.com");
    		httpGet2.setConfig(requestConfig);
    		String srtResult = "";
    		try {
    			HttpResponse httpResponse = httpCilent2.execute(httpGet2);
    			if(httpResponse.getStatusLine().getStatusCode() == 200){
    				srtResult = EntityUtils.toString(httpResponse.getEntity());//获得返回的结果
    				System.out.println(srtResult);
    			}else if(httpResponse.getStatusLine().getStatusCode() == 400){
    				//..........
    			}else if(httpResponse.getStatusLine().getStatusCode() == 500){
    				//.............
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		}finally {
    			try {
    				httpCilent2.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    

      POST请求

    //获取可关闭的 httpCilent
    		CloseableHttpClient httpClient = HttpClients.createDefault();
    		//配置超时时间
    		RequestConfig requestConfig = RequestConfig.custom().
    				setConnectTimeout(1000).setConnectionRequestTimeout(1000)
    				.setSocketTimeout(1000).setRedirectsEnabled(true).build();
    		
    		HttpPost httpPost = new HttpPost("http://consentprt.dtac.co.th/webaoc/123SubscriberProcess");
    		//设置超时时间
    		httpPost.setConfig(requestConfig);
    		//装配post请求参数
    		List<BasicNameValuePair> list = new ArrayList<BasicNameValuePair>();  
    		list.add(new BasicNameValuePair("age", "20"));  //请求参数
    		list.add(new BasicNameValuePair("name", "zhangsan")); //请求参数
    		try {
    			UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,"UTF-8");  
    			//设置post求情参数
    			httpPost.setEntity(entity);
    			HttpResponse httpResponse = httpClient.execute(httpPost); 
    	        String strResult = "";
    	        if(httpResponse != null){  
    	        	System.out.println(httpResponse.getStatusLine().getStatusCode());
    				if (httpResponse.getStatusLine().getStatusCode() == 200) {
    					strResult = EntityUtils.toString(httpResponse.getEntity());
    				} else if (httpResponse.getStatusLine().getStatusCode() == 400) {
    					strResult = "Error Response: " + response.getStatusLine().toString();
    				} else if (httpResponse.getStatusLine().getStatusCode() == 500) {
    					strResult = "Error Response: " + response.getStatusLine().toString();
    				} else {
    					strResult = "Error Response: " + response.getStatusLine().toString();
    				}  
    	        }else{
    	        	
    	        }
    	        System.out.println(strResult);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}finally {
    			try {
    				if(httpClient != null){
    					httpClient.close(); //释放资源
    				}
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}
    

      Post 请求

    public static String doPost(String url, Map<String, Object> paramsMap){
    		CloseableHttpClient httpClient = HttpClients.createDefault();
    		HttpPost httpPost = new HttpPost(url);
    		RequestConfig requestConfig = RequestConfig.custom().
    				setConnectTimeout(180 * 1000).setConnectionRequestTimeout(180 * 1000)
    				.setSocketTimeout(180 * 1000).setRedirectsEnabled(true).build();
    		httpPost.setConfig(requestConfig);
    		
    		List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    		for (String key : paramsMap.keySet()) {
    			nvps.add(new BasicNameValuePair(key, String.valueOf(paramsMap.get(key))));
    		}
    		try {
    			httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
    			logger.info("httpPost ===**********===>>> " + EntityUtils.toString(httpPost.getEntity()));
    			HttpResponse response = httpClient.execute(httpPost);
    			String strResult = "";
    			if (response.getStatusLine().getStatusCode() == 200) {
    				 strResult = EntityUtils.toString(response.getEntity());
    				 return strResult;
    			} else {
    				return "Error Response: " + response.getStatusLine().toString();
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    			return "post failure :caused by-->" + e.getMessage().toString();
    		}finally {
    			if(null != httpClient){
    				try {
    					httpClient.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    	}
    

      

    POST 请求,参数是json字符串

    public static String doPostForJson(String url, String jsonParams){
    			CloseableHttpClient httpClient = HttpClients.createDefault();
    			HttpPost httpPost = new HttpPost(url);
    			RequestConfig requestConfig = RequestConfig.custom().
    					setConnectTimeout(180 * 1000).setConnectionRequestTimeout(180 * 1000)
    					.setSocketTimeout(180 * 1000).setRedirectsEnabled(true).build();
    			
    			httpPost.setConfig(requestConfig);
    			httpPost.setHeader("Content-Type","application/json");  // 
    			try {
    				httpPost.setEntity(new StringEntity(jsonParams,ContentType.create("application/json", "utf-8")));
    				System.out.println("request parameters" + EntityUtils.toString(httpPost.getEntity()));
    				HttpResponse response = httpClient.execute(httpPost);
    				System.out.println(" code:"+response.getStatusLine().getStatusCode());
    				System.out.println("doPostForInfobipUnsub response"+response.getStatusLine().toString());
    				return String.valueOf(response.getStatusLine().getStatusCode());
    			} catch (Exception e) {
    				e.printStackTrace();
    				return "post failure :caused by-->" + e.getMessage().toString();
    			}finally {
    				if(null != httpClient){
    					try {
    						httpClient.close();
    					} catch (IOException e) {
    						e.printStackTrace();
    					}
    				}
    			}
    }

    Post 请求上传文件,模拟表单提交文件

     依赖:

    <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpmime</artifactId>
                <version>4.4</version>
            </dependency>
    public static String doPost() {
            final String url = "http://10.12.1.104:8080/hello";//
            CloseableHttpClient httpClient = HttpClients.createDefault();
            String result = "";
            try {
                File imageFile = new File("D:\captcha.jpg");
                String fileName = imageFile.getName();
                HttpPost httpPost = new HttpPost(url);
                MultipartEntityBuilder builder = MultipartEntityBuilder.create();
                // file,类似表单中的name的值,后台通过这个名字取文件
                builder.addBinaryBody("file", new FileInputStream(imageFile), ContentType.MULTIPART_FORM_DATA, fileName);// 文件流
                HttpEntity entity = builder.build();
                httpPost.setEntity(entity);
                HttpResponse response = httpClient.execute(httpPost);// 执行提交
                HttpEntity responseEntity = response.getEntity();
                if (responseEntity != null) {
                    // 将响应内容转换为字符串
                    result = EntityUtils.toString(responseEntity, Charset.forName("UTF-8"));
                }
            } catch (IOException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    httpClient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    

      后台接收文件

        @PostMapping("/hello")
        @ResponseBody
        public Map<String, String> a(MultipartHttpServletRequest multipartRequest) throws IOException {
    
            String filePath = System.getProperties().getProperty("user.home") + "/upload_y"; //获取要保存的路径
            MultipartFile file = multipartRequest.getFiles("file").get(0);
            String originalFilename = file.getOriginalFilename();
            //文件路径
            String myfilePath = filePath + File.separator + originalFilename + UUID.randomUUID();
            file.transferTo(new File(myfilePath));
            return null;
        }

     https post 

    直接可以用

    public static String postByHttps(String url, Map<String, Object> paramsMap) throws Exception{
    		X509TrustManager tm = new X509TrustManager() {
    			@Override
    			public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
    			}
    
    			@Override
    			public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
    			}
    
    			@Override
    			public X509Certificate[] getAcceptedIssuers() {
    				return null;
    			}
    		};
    		SSLContext sslContext = SSLContext.getInstance("TLS");
    		// 初始化SSL上下文
    		sslContext.init(null, new TrustManager[] { tm }, null);
    		SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
    		CloseableHttpClient httpclient = HttpClients.custom().setSSLSocketFactory(sslsf).setMaxConnTotal(50)
    				.setMaxConnPerRoute(50).setDefaultRequestConfig(RequestConfig.custom()
    						.setConnectionRequestTimeout(60000).setConnectTimeout(60000).setSocketTimeout(60000).build())
    				.build();
    		HttpPost httppost = new HttpPost(url);
    		List<NameValuePair> nvps = new ArrayList<NameValuePair>();
    		for (String key : paramsMap.keySet()) {
    			nvps.add(new BasicNameValuePair(key, String.valueOf(paramsMap.get(key))));
    		}
    		try {
    			httppost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
    			logger.info("httpsPost ===**********===>>> " + EntityUtils.toString(httppost.getEntity()));
    			HttpResponse response = httpclient.execute(httppost);
    			String strResult = "";
    			if (response.getStatusLine().getStatusCode() == 200) {
    				strResult = EntityUtils.toString(response.getEntity());
    				return strResult;
    			} else {
    				logger.info("Error Response:" + response.getStatusLine().toString());
    				return "Error Response: " + response.getStatusLine().toString();
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    			return "post failure :caused by-->" + e.getMessage().toString();
    		}finally {
    			if(null != httpclient){
    				try {
    					httpclient.close();
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}
    		}
    	}

    我在腾讯微视玩短视频 搜索用户  “lei9527”

    域名购买.com 后缀好域名 

     https://mi.aliyun.com/shop/38040

      

      

  • 相关阅读:
    世界视频编码器大赛结果揭晓,腾讯V265编码器勇夺两项第一
    IDEA实用教程(六)—— 全局设置的两种方式
    IDEA实用教程(五)——配置IDEA的JVM内存值
    IDEA实用教程(四)—— 创建JavaSE工程
    IDEA实用教程(三)
    IDEA实用教程(二)
    emlog博客的安装教程
    IDEA实用教程(一)
    阿里云轻量应用服务器快照的使用及注意事项
    mysql5.5安装教程
  • 原文地址:https://www.cnblogs.com/c9999/p/6636415.html
Copyright © 2020-2023  润新知