Http请求工具类HttpUtil
来源:互联网 发布:淘宝非实名认证手机卡 编辑:程序博客网 时间:2024/06/08 02:18
httpGet + hostname in certificate didn't match 报错!
HTTPS加密引起的。
解决https需要验证问题
Hostname in certificate didn't match?
HttpClient工具类
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.net.URL;import java.net.URLConnection;import java.util.Map;import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.NameValuePair;import org.apache.commons.httpclient.methods.PostMethod;import org.apache.log4j.Logger;public class HttpUtil {private static final Logger logger = Logger.getLogger(HttpUtil.class);/** * http post请求 * @param url地址 * @param postContentpost内容格式为param1=value¶m2=value2¶m3=value3 * @return * @throws IOException */public static String httpPostRequest(URL url, String postContent) throws Exception{OutputStream outputstream = null;BufferedReader in = null;try{URLConnection httpurlconnection = url.openConnection();httpurlconnection.setConnectTimeout(10 * 1000);httpurlconnection.setDoOutput(true);httpurlconnection.setUseCaches(false);OutputStreamWriter out = new OutputStreamWriter(httpurlconnection.getOutputStream(), "UTF-8");out.write(postContent);out.flush();StringBuffer result = new StringBuffer();in = new BufferedReader(new InputStreamReader(httpurlconnection.getInputStream(),"UTF-8"));String line;while ((line = in.readLine()) != null){result.append(line);}return result.toString();}catch(Exception ex){logger.error("post请求异常:" + ex.getMessage());throw new Exception("post请求异常:" + ex.getMessage());}finally{if (outputstream != null){try{outputstream.close();}catch (IOException e){outputstream = null;}}if (in != null){try{in.close();}catch (IOException e){in = null;}}}}/** * 通过httpClient进行post提交 * @param url提交url地址 * @param charset字符集 * @param keys参数名 * @param values参数值 * @return * @throws Exception */public static String HttpClientPost(String url , String charset , String[] keys , String[] values) throws Exception{HttpClient client = null;PostMethod post = null;String result = "";int status = 200;try { client = new HttpClient(); //PostMethod对象用于存放地址 //总账户的测试方法 post = new PostMethod(url); //NameValuePair数组对象用于传入参数 post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=" + charset);//在头文件中设置转码 String key = ""; String value = ""; NameValuePair temp = null; NameValuePair[] params = new NameValuePair[keys.length]; for (int i = 0; i < keys.length; i++) { key = (String)keys[i]; value = (String)values[i]; temp = new NameValuePair(key , value); params[i] = temp; temp = null; } post.setRequestBody(params); //执行的状态 status = client.executeMethod(post); logger.info("status = " + status); if(status == 200){ result = post.getResponseBodyAsString(); } } catch (Exception ex) {// TODO: handle exceptionthrow new Exception("通过httpClient进行post提交异常:" + ex.getMessage() + " status = " + status);}finally{post.releaseConnection(); }return result;}/** * 字符串处理,如果输入字符串为null则返回"",否则返回本字符串去前后空格。 * @param inputStr输入字符串 * @returnstring 输出字符串 */ public static String doString(String inputStr){ //如果为null返回"" if(inputStr == null || "".equals(inputStr) || "null".equals(inputStr)){ return ""; } //否则返回本字符串把前后空格去掉 return inputStr.trim(); } /** * 对象处理,如果输入对象为null返回"",否则则返回本字符对象信息,去掉前后空格 * @param object * @return */ public static String doString(Object object){ //如果为null返回"" if(object == null || "null".equals(object) || "".equals(object)){ return ""; } //否则返回本字符串把前后空格去掉 return object.toString().trim(); } }
使用:
String returnXML = HttpUtil.httpPostRequest(new URL(sendURL), postContent);
工具类2:
public class HttpUtil {private static Log log = LogFactory.getLog(HttpUtil.class);private static final String DEFAULT_HTTP_CHARSET = "UTF-8";private static final String GETID_URL = ProPertiesUtil.getValue("/server.properties", "getidurl");private static DefaultHttpClient httpClient = new DefaultHttpClient();private HttpUtil() {}public static String sendHttpByPost(String url,Map map) throws Exception{HttpClient httpClient = new HttpClient(HttpClient.TRANSMODE_FORM,HttpClient.METHOD_POST);/*Map<String,String> paramMap = new HashMap<String,String>();paramMap.put("wf_type_id",wf_type_id.toString());paramMap.put("customer_id",customer_id.toString());paramMap.put("thirdparty_id",thirdparty_id.toString());paramMap.put("order_no",order_no);paramMap.put("order_idss",order_idss);paramMap.put("user_id",user_id.toString());paramMap.put("wf_code",wf_code);paramMap.put("step",step.toString());paramMap.put("wf_id", wf_id.toString());*/httpClient.setUrl(url);httpClient.setNameValuePair(map);return httpClient.getResponseString();}public static String httpGet(String url) {String strReturn = "";HttpUriRequest request = new HttpGet(url);try {HttpResponse response = httpClient.execute(request);HttpEntity entity = response.getEntity();strReturn = EntityUtils.toString(entity,DEFAULT_HTTP_CHARSET);}catch(Exception e) {// 网络异常log.error(e.getMessage());}return strReturn;}public static void main(String[] args) throws JSONException, Exception{String strUrl1 = "http://localhost:8084/test/order/addOrder.do?orderCode=123456789&totalFee=39800";System.out.println(httpGet(strUrl1));}}
或:
public String getMedia(String token,String mediaID){logger.info("getMedia=============start");String url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token="+token+"&media_id="+mediaID; BufferedInputStream bis = null; FileOutputStream fos = null; String imgFilePath = null;try { HttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); HttpResponse response = client.execute(httpGet); HttpEntity entity = response.getEntity(); // 根据内容类型获取扩展名 String fileExt = getFileEndWitsh(entity.getContentType().getValue()); if(StringUtils.isEmpty(fileExt)) { logger.error("上传图片出错:content-Type" +entity.getContentType().getValue() + EntityUtils.toString(entity, "UTF-8")); return null; } String tmpImgPath = ProPertiesUtil.getValue("/auction.properties", "tmp_img_path"); imgFilePath = getPhysicalPath(tmpImgPath) + File.separator + mediaID + fileExt;;// 新生成的图片 bis = new BufferedInputStream(entity.getContent()); fos = new FileOutputStream(new File(imgFilePath)); byte[] buf = new byte[8096]; int size = 0; while ((size = bis.read(buf)) != -1) fos.write(buf, 0, size); fos.close(); bis.close(); logger.info("下载媒体文件成功,filePath="+ imgFilePath); } catch (Exception e) { imgFilePath = null; logger.error("下载媒体文件失败:",e); } finally { if (bis != null) { try { bis.close(); } catch (IOException e) { logger.error("连接微信出错:",e); } } if (fos != null) { try { fos.close(); } catch (IOException e) { logger.error("连接微信出错:",e); } } }return imgFilePath; }
HttpClient httpclient = new DefaultHttpClient();HttpPost post = new HttpPost(IMAGE_FTP_PATH);File file = new File(filePath);FileBody fileBody = new FileBody(file);try {MultipartEntity entity = new MultipartEntity();entity.addPart("file", fileBody);post.setEntity(entity);HttpResponse response = httpclient.execute(post);logger.info("图片服务器返回code:" + response.getStatusLine().getStatusCode());if (HttpStatus.SC_OK == response.getStatusLine().getStatusCode()) {HttpEntity entitys = response.getEntity();if (entitys != null) {//resultLen = entity.getContentLength();returnStr = EntityUtils.toString(entitys);logger.info("图片服务器返回returnStr:" + returnStr);}}httpclient.getConnectionManager().shutdown();//删除本地//file.delete();} catch (UnsupportedEncodingException e) {logger.error(e.getMessage(), e);} catch (ClientProtocolException e) {logger.error(e.getMessage(), e);} catch (IOException e) {logger.error(e.getMessage(), e);}
3、
package com.common.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.net.URLEncoder;import java.util.Map;/** * @author Administrator * */public class HttpUtils {/** * 使用Get方式获取数据 * * @param url * URL包括参数,http://HOST/XX?XX=XX&XXX=XXX * @param charset * @return */public static String sendGet(String url) {String result = "";BufferedReader in = null;try {URL realUrl = new URL(url);// 打开和URL之间的连接 URLConnection connection = realUrl.openConnection();// 设置通用的请求属性 connection.setRequestProperty("accept", "*/*");connection.setRequestProperty("connection", "Keep-Alive");connection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 建立实际的连接 connection.connect();// 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送GET请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输入流 finally {try {if (in != null) {in.close();}} catch (Exception e2) {e2.printStackTrace();}}return result;}/** * POST请求,字符串形式数据 * @param url 请求地址 * @param param 请求数据 * @param charset 编码方式 */public static String sendPostUrl(String url, String param, String charset) {PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接 URLConnection conn = realUrl.openConnection();// 设置通用的请求属性 conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 发送POST请求必须设置如下两行 conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream());// 发送请求参数 out.print(param);// flush输出流的缓冲 out.flush();// 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送 POST 请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输出流、输入流 finally {try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}/** * POST请求,Map形式数据 * @param url 请求地址 * @param param 请求数据 * @param charset 编码方式 */public static String sendPost(String url, Map<String, String> param,String charset) {StringBuffer buffer = new StringBuffer();if (param != null && !param.isEmpty()) {for (Map.Entry<String, String> entry : param.entrySet()) {buffer.append(entry.getKey()).append("=").append(URLEncoder.encode(entry.getValue())).append("&");}}buffer.deleteCharAt(buffer.length() - 1);PrintWriter out = null;BufferedReader in = null;String result = "";try {URL realUrl = new URL(url);// 打开和URL之间的连接 URLConnection conn = realUrl.openConnection();// 设置通用的请求属性 conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");// 发送POST请求必须设置如下两行 conn.setDoOutput(true);conn.setDoInput(true);// 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream());// 发送请求参数 out.print(buffer);// flush输出流的缓冲 out.flush();// 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(conn.getInputStream(), charset));String line;while ((line = in.readLine()) != null) {result += line;}} catch (Exception e) {System.out.println("发送 POST 请求出现异常!" + e);e.printStackTrace();}// 使用finally块来关闭输出流、输入流 finally {try {if (out != null) {out.close();}if (in != null) {in.close();}} catch (IOException ex) {ex.printStackTrace();}}return result;}public static void main(String[] args) {}}
0 0
- Http请求工具类 httputil
- Http请求工具类HttpUtil
- httputil用http获取请求的工具类
- HttpUtil---网络请求工具类
- 网络请求工具类HttpUtil
- 发送HTTP请求 -- HttpUtil
- 网络请求应该是HttpUtil 工具类
- Android网络请求HttpUtil封装工具类
- HttpUtil工具类发送post请求
- HttpUtil工具类
- httpUtil工具类
- HttpUtil 工具类
- HttpUtil工具类
- HttpUtil工具类
- Android工具类系列-HttpUtil
- HttpUtil工具
- Http请求工具类
- http请求工具类
- 2017年4月2日,小丸子和腾讯[基础研究]有个约会
- XML工具类XmlUtil
- ios 缩放动画
- Maven无法从nexus私服下载依赖?
- Ubuntu下载是出现锁定错误
- Http请求工具类HttpUtil
- 不同系统间的文件传输与打包压缩
- 基因芯片Pro-processions -------Bioconductor 安装包
- Excel工具类POIExcelUtil
- 设计模式学习笔记——解释器(Interpreter)模式
- 导出Excel的方法及困惑
- Cookie与Session
- Tomcat 7 的七大新特性
- Java设计模式(代理模式)