java模拟提交post工具类

来源:互联网 发布:内窥镜图文工作站软件 编辑:程序博客网 时间:2024/06/03 20:13
最近在搞微信开发,问题不少,微信文档更是毒多得很,接口测试也不解释清楚,总之麻烦的很,自己写写查查,从晚上找了几段代码组合做了个工具类,留下笔记,以后再写到这里,也好方便一点
package com.wechat.util;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.util.List;import java.util.Map;import org.apache.commons.httpclient.methods.PostMethod;import org.apache.commons.httpclient.methods.multipart.FilePart;import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;import org.apache.commons.httpclient.methods.multipart.Part;import org.apache.http.HttpStatus;import fr.opensagres.xdocreport.document.json.JSONObject;public class HttpRequest {/** * 向指定URL发�?�GET方法的请�? *  * @param url *            发�?�请求的URL * @param param *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式�?? * @return URL �?代表远程资源的响应结�? */public static String sendGet(String url, String param) {String result = "";BufferedReader in = null;try {String urlNameString = url + "?" + param;URL realUrl = new URL(urlNameString);// 打开和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();// 获取�?有响应头字段Map<String, List<String>> map = connection.getHeaderFields();// 遍历�?有的响应头字�?for (String key : map.keySet()) {System.out.println(key + "--->" + map.get(key));}// 定义 BufferedReader输入流来读取URL的响�?in = new BufferedReader(new InputStreamReader(connection.getInputStream()));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;}/** * 向指�? URL 发�?�POST方法的请�? *  * @param url *            发�?�请求的 URL * @param param *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式�?? * @return �?代表远程资源的响应结�? */public static String sendPost(String url, String param) {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()));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;}/** * �ϴ���ý���ļ� *  * @param url *            ����url * @param access_token *            access_token * @param type *            �ļ����� * @param file *            �ļ����� * @return */public static String uploadImage(String url, String access_token,String type, File file) {org.apache.commons.httpclient.HttpClient client = new org.apache.commons.httpclient.HttpClient();String uploadurl = String.format("%s?access_token=%s&type=%s", url,access_token, type);PostMethod post = new PostMethod(uploadurl);post.setRequestHeader("User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0");post.setRequestHeader("Host", "file.api.weixin.qq.com");post.setRequestHeader("Connection", "Keep-Alive");post.setRequestHeader("Cache-Control", "no-cache");String result = null;try {if (file != null && file.exists()) {FilePart filepart = new FilePart("media", file, "image/jpeg","UTF-8");Part[] parts = new Part[] { filepart };MultipartRequestEntity entity = new MultipartRequestEntity(parts,post.getParams());post.setRequestEntity(entity);int status = client.executeMethod(post);if (status == HttpStatus.SC_OK) {result = post.getResponseBodyAsString();}}} catch (Exception e) {e.printStackTrace();} finally {return result;}}public static String JsonMediaId(String response) {System.out.println(response);JSONObject json = new JSONObject(response);try {return (String) json.get("media_id");} catch (Exception e) {// TODO: handle exception}return null;}}

0 0
原创粉丝点击