HttpClient与HttpClient参数paras
2014-01-02 10:49
162 查看
import java.beans.PropertyDescriptor; import java.io.InputStream; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.params.HttpMethodParams; import org.dom4j.Document; import org.dom4j.io.SAXReader; /** * * @param sysid * @param ip * @param commuInfo * @return * 获得HttpClient参数paras */ public static NameValuePair[] getValuePair(String sysid,String ip,CommuVo commuInfo){ NameValuePair[] paras = null ; try { Class<? extends CommuVo> cla=commuInfo.getClass(); Field[] field=cla.getDeclaredFields(); int size=field.length; paras=new NameValuePair[size+2]; paras[0] = new NameValuePair("sysid", sysid); paras[1] = new NameValuePair("ip", ip); int i=2; for(Field f :field){ String name=f.getName(); PropertyDescriptor pd = new PropertyDescriptor(name,cla); Method getMethod = pd.getReadMethod();//获得get方法 Object obj = getMethod.invoke(commuInfo);//执行get方法返回一个Object String value=obj!=null ? obj.toString() : ""; System.out.println("name————————value : "+name+"————"+value); paras[i] = new NameValuePair(name, value); i++; } } catch (Exception e) { e.printStackTrace(); } return paras; } /** * 公共方法 * post http 请求,接受返回的结果xml文档 * @param url webservice地址 * @param paras 传递的参数 * @return Document 对象 */ public static Document postHttp(String url, NameValuePair[] parasInput) { Document doc = null; PostMethod postMethod = new PostMethod(url); try { //重新构造参数数组,是为了加入公共参数:随机数,以防缓存影响执行结果 NameValuePair[] paras = null; if(parasInput!=null){ paras = new NameValuePair[parasInput.length+1]; paras[0] = new NameValuePair("httpRand",""+new Date().getTime()); for (int i = 0; i < parasInput.length; i++) { paras[i+1] = parasInput[i]; } } if(showLog){printLog(paras);}//打印所传递的参数,以便调试 HttpClient client = new HttpClient(); client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8"); postMethod.setRequestBody(paras);//绑定参数 int statusCode = client.executeMethod(postMethod); if (statusCode == HttpStatus.SC_OK) {//如果执行成功 // System.out.println(postMethod.getResponseBodyAsString()); InputStream inputStream = postMethod.getResponseBodyAsStream(); doc = (new SAXReader()).read(inputStream); inputStream.close(); } else { } } catch (Exception e) { e.printStackTrace(); }finally { postMethod.releaseConnection();//释放连接 } return doc; }
相关文章推荐
- HttpClient 4.3连接池参数配置及源码解读
- HttpClient通过post上传文件和提交参数
- httpclient4 post 以json方式传参数
- HttpClient获取状态码为302中Headers的参数Location
- httpclient发送无参数的post数据
- HttpClient4.X发送Get请求的url参数拼接
- 轻松把玩HttpClient之封装HttpClient工具类(六),封装输入参数,简化工具类
- httpclient4 post请求传参数
- httpclient 传递参数的问题
- httpclient 3.x 中 MultiThreadedHttpConnectionManager参数理解
- JAVA HttpClient(普通参数、JSON格式参数)
- httpclient上传图片与参数,处理中文乱码
- 使用httpClient MultipartRequestEntity文件上传解析文件和普通表单参数
- httpclient中getmethod方法的url参数如果含有中文的处理办法
- 搜索系统14:HttpClient怎么有两个超时参数,都该怎么配?
- HttpClient调用接口传递文件参数
- angular使用Http和HttpClient设置查询参数的区别
- HttpClient与参数json
- Java:HttpClient篇,HttpClient4.2在Java中的几则应用:Get、Post参数、Session(会话)保持、Proxy(代理服务器)设置,多线程设置...
- httpclient 参数 覆盖级别