所需jar包:

commons-codec-1.3.jar
commons-httpclient-3.0.jar
commons-logging-1.1.1.jar

/*** */
package httpClient;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URLEncoder;import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;/** * @ClassName: SimpleClient * @Description: TODO(这里用一句话描述这个类的作用) * @author zhoushun * @date 2014年2月13日 上午9:35:17 *  */
public class SimpleClient {public static void main(String[] args) throws IOException{HttpClient client = new HttpClient();   //设置代理服务器地址和端口     //client.getHostConfiguration().setProxy("proxy_host_addr",proxy_port);//使用GET方法,如果服务器需要通过HTTPS连接,那只需要将下面URL中的http换成https// HttpMethod method = new GetMethod("http://10.1.14.20:8088/workflowController/service/todo/addTask"); //使用POST方法PostMethod method = new PostMethod("http://10.1.14.20:8088/workflowController/service/todo/addTask"); String s = "http://10.1.48.16:8080/workflow/send-tDocSend/toFormPage.action?modelName=%E6%96%B0%E5%8F%91%E6%96%87%E6%B5%81%E7%A8%8B&incidentNo=65&processName=%E6%96%B0%E5%8F%91%E6%96%87%E6%B5%81%E7%A8%8B&pinstanceId=65&taskUserName=ST/G001000001612549&stepName=%E5%8F%91%E6%96%87%E9%80%9A%E7%9F%A5&taskId=12261064757e7498937e6b29ea80ca&taskuser=ST/G001000001612549&codeId=13";String ms = "{\"app\": \"standardWork\",\"type\": 0,"+ "\"occurTime\": \"2013-11-14 11:22:02\",\"title\": \"-------流程标题-------\","+ "\"loginName\": \"ST/G01008000311\",\"status\": 0,\"removed\": 0,"+ " \"typename\": \"流程名称11\","+ "\"url\": \""+URLEncoder.encode(s,"UTF-8")+"\","+ "\"pname\": \"主流程名称\",\"pincident\": 1,"+ "\"cname\": \"子流程实例号\",\"cincident\": 1,"+ "\"stepName\": \"当前步骤\","+ "\"initiator\": \"ST/G01008000311\"}";((PostMethod) method).addParameter("data", ms);HttpMethodParams param = method.getParams();param.setContentCharset("UTF-8");client.executeMethod(method);//打印服务器返回的状态System.out.println(method.getStatusLine());//打印返回的信息System.out.println();InputStream stream = method.getResponseBodyAsStream();BufferedReader br = new BufferedReader(new InputStreamReader(stream, "UTF-8"));StringBuffer buf = new StringBuffer();String line;while (null != (line = br.readLine())) {buf.append(line).append("\n");}System.out.println(buf.toString());//释放连接
     method.releaseConnection();}
}

另附上 新浪微博 上的 调用demo中的一些 方法:

    public HttpClient(int maxConPerHost, int conTimeOutMs, int soTimeOutMs,int maxSize) {connectionManager = new MultiThreadedHttpConnectionManager();HttpConnectionManagerParams params = connectionManager.getParams();params.setDefaultMaxConnectionsPerHost(maxConPerHost);params.setConnectionTimeout(conTimeOutMs);params.setSoTimeout(soTimeOutMs);HttpClientParams clientParams = new HttpClientParams();// 忽略cookie 避免 Cookie rejected 警告
        clientParams.setCookiePolicy(CookiePolicy.IGNORE_COOKIES);client = new org.apache.commons.httpclient.HttpClient(clientParams,connectionManager);Protocol myhttps = new Protocol("https", new MySSLSocketFactory(), 443);Protocol.registerProtocol("https", myhttps);this.maxSize = maxSize;// 支持proxyif (proxyHost != null && !proxyHost.equals("")) {client.getHostConfiguration().setProxy(proxyHost, proxyPort);client.getParams().setAuthenticationPreemptive(true);if (proxyAuthUser != null && !proxyAuthUser.equals("")) {client.getState().setProxyCredentials(AuthScope.ANY,new UsernamePasswordCredentials(proxyAuthUser,proxyAuthPassword));log("Proxy AuthUser: " + proxyAuthUser);log("Proxy AuthPassword: " + proxyAuthPassword);}}}/*** log调试* */private static void log(String message) {if (DEBUG) {log.debug(message);}}/*** 处理http getmethod 请求* */public Response get(String url) throws WeiboException {return get(url, new PostParameter[0]);}public Response get(String url, PostParameter[] params)throws WeiboException {log("Request:");log("GET:" + url);if (null != params && params.length > 0) {String encodedParams = HttpClient.encodeParameters(params);if (-1 == url.indexOf("?")) {url += "?" + encodedParams;} else {url += "&" + encodedParams;}}GetMethod getmethod = new GetMethod(url);return httpRequest(getmethod);}public Response get(String url, PostParameter[] params, Paging paging)throws WeiboException {if (null != paging) {List<PostParameter> pagingParams = new ArrayList<PostParameter>(4);if (-1 != paging.getMaxId()) {pagingParams.add(new PostParameter("max_id", String.valueOf(paging.getMaxId())));}if (-1 != paging.getSinceId()) {pagingParams.add(new PostParameter("since_id", String.valueOf(paging.getSinceId())));}if (-1 != paging.getPage()) {pagingParams.add(new PostParameter("page", String.valueOf(paging.getPage())));}if (-1 != paging.getCount()) {if (-1 != url.indexOf("search")) {// search api takes "rpp"pagingParams.add(new PostParameter("rpp", String.valueOf(paging.getCount())));} else {pagingParams.add(new PostParameter("count", String.valueOf(paging.getCount())));}}PostParameter[] newparams = null;PostParameter[] arrayPagingParams = pagingParams.toArray(new PostParameter[pagingParams.size()]);if (null != params) {newparams = new PostParameter[params.length+ pagingParams.size()];System.arraycopy(params, 0, newparams, 0, params.length);System.arraycopy(arrayPagingParams, 0, newparams,params.length, pagingParams.size());} else {if (0 != arrayPagingParams.length) {String encodedParams = HttpClient.encodeParameters(arrayPagingParams);if (-1 != url.indexOf("?")) {url += "&" + encodedParams;} else {url += "?" + encodedParams;}}}return get(url, newparams);} else {return get(url, params);}}/*** 处理http deletemethod请求*/public Response delete(String url, PostParameter[] params)throws WeiboException {if (0 != params.length) {String encodedParams = HttpClient.encodeParameters(params);if (-1 == url.indexOf("?")) {url += "?" + encodedParams;} else {url += "&" + encodedParams;}}DeleteMethod deleteMethod = new DeleteMethod(url);return httpRequest(deleteMethod);}/*** 处理http post请求* */public Response post(String url, PostParameter[] params)throws WeiboException {return post(url, params, true);}public Response post(String url, PostParameter[] params,Boolean WithTokenHeader) throws WeiboException {log("Request:");log("POST" + url);PostMethod postMethod = new PostMethod(url);for (int i = 0; i < params.length; i++) {postMethod.addParameter(params[i].getName(), params[i].getValue());}HttpMethodParams param = postMethod.getParams();param.setContentCharset("UTF-8");if (WithTokenHeader) {return httpRequest(postMethod);} else {return httpRequest(postMethod, WithTokenHeader);}}/*** 支持multipart方式上传图片* */public Response multPartURL(String url, PostParameter[] params,ImageItem item) throws WeiboException {PostMethod postMethod = new PostMethod(url);try {Part[] parts = null;if (params == null) {parts = new Part[1];} else {parts = new Part[params.length + 1];}if (params != null) {int i = 0;for (PostParameter entry : params) {parts[i++] = new StringPart(entry.getName(),(String) entry.getValue());}parts[parts.length - 1] = new ByteArrayPart(item.getContent(),item.getName(), item.getContentType());}postMethod.setRequestEntity(new MultipartRequestEntity(parts,postMethod.getParams()));return httpRequest(postMethod);} catch (Exception ex) {throw new WeiboException(ex.getMessage(), ex, -1);}}public Response multPartURL(String fileParamName, String url,PostParameter[] params, File file, boolean authenticated)throws WeiboException {PostMethod postMethod = new PostMethod(url);try {Part[] parts = null;if (params == null) {parts = new Part[1];} else {parts = new Part[params.length + 1];}if (params != null) {int i = 0;for (PostParameter entry : params) {parts[i++] = new StringPart(entry.getName(),(String) entry.getValue());}}FilePart filePart = new FilePart(fileParamName, file.getName(),file, new MimetypesFileTypeMap().getContentType(file),"UTF-8");filePart.setTransferEncoding("binary");parts[parts.length - 1] = filePart;postMethod.setRequestEntity(new MultipartRequestEntity(parts,postMethod.getParams()));return httpRequest(postMethod);} catch (Exception ex) {throw new WeiboException(ex.getMessage(), ex, -1);}}public Response httpRequest(HttpMethod method) throws WeiboException {return httpRequest(method, true);}

HttpClient post 请求实例相关推荐

  1. HttpClient Get请求实例

    Httpclient是我们平时中用的比较多的,但是一般用的时候都是去网上百度一下,把demo直接拿过来改一下用就行了,接下来我们来看他的一些具体的用法.Apache HttpComponents™项目 ...

  2. java httpclient 异步请求_java_java实现HttpClient异步请求资源的方法,本文实例讲述了java实现HttpClien - phpStudy...

    java实现HttpClient异步请求资源的方法 本文实例讲述了java实现HttpClient异步请求资源的方法.分享给大家供大家参考.具体实现方法如下: package demo; import ...

  3. postman发送object_.NetCore HttpClient发送请求的时候为什么自动带上了一个RequestId头部...

    奇怪的问题 最近在公司有个系统需要调用第三方的一个webservice.本来调用一个下很简单的事情,使用HttpClient构造一个SOAP请求发送出去拿到XML解析就是了. 可奇怪的是我们的请求在运 ...

  4. .NetCore HttpClient发送请求的时候为什么自动带上了一个RequestId头部?

    奇怪的问题 最近在公司有个系统需要调用第三方的一个webservice.本来调用一个下很简单的事情,使用HttpClient构造一个SOAP请求发送出去拿到XML解析就是了.可奇怪的是我们的请求在运行 ...

  5. 基于HttpClient接口开发实例(一)

    前言 本系列将是本人的一些开发经验总结.由于身处金融IT因而因业务需求需要和银行接口打交道,恰巧最近公司有个项目和这有很大的关系,下面我们将着重从基于HttpClient接口开发的技术点+基本业务点说 ...

  6. HttpClient发送请求

    HttpClient发送请求 前言:前段时间接到一个需求,要求系统中实现一个可以上传语音文件的功能,然后将文件和需要的参数发送到电信的接口上: 开始说起来感觉很简单,但是就真的被折磨了好几天,主要还是 ...

  7. 给HttpClient添加请求头(HttpClientFactory)

    前言 在微服务的大环境下,会出现这个服务调用这个接口,那个接口的情况.假设出了问题,需要排查的时候,我们要怎么关联不同服务之间的调用情况呢?换句话就是说,这个请求的结果不对,看看是那里出了问题. 最简 ...

  8. HttpClient的连接池||HttpClient的请求参数

    连接池 如果每次请求都要创建HttpClient,会有频繁创建和销毁的问题,可以使用连接池来解决这个问题 HttpClientPoolTest.java package cn.itcast.crawl ...

  9. HttpClient ||GET请求||带参数的GET请求

    HttpClient 网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用HTTP协议访问互联网的网页,网络爬虫需要编写程序,在这里使用同样的HTTP协议访问网页. 这里使用Java的HT ...

  10. AJAX ASP/PHP 请求实例

    AJAX ASP/PHP 请求实例 ·                          Previous Page ·                          Next Page AJAX ...

最新文章

  1. 特写李飞飞:她激励了人工智能的发展,更要给人工智能赋予人的价值
  2. libgdx 3D 测试一
  3. 携程开源Redis多数据中心解决方案-XPipe
  4. Java应用程序的简单令牌认证
  5. 飞秋2010下载企业信息化办公
  6. 多线程之wait和notify使用注意事项
  7. comparator比较器用法_电压跟随器的这些点,确定都懂了吗?如果设计成同相端追随反向端会怎样? #运放...
  8. ISCROLL4 简述
  9. mfc 服务器文件拷贝到本地,mfc服务器客户端间传输文件
  10. 各地实时摄像头_你头顶的摄像头将变成有脑子的眼睛!亚马逊推出AWS Panorama,强监控时代来临?...
  11. 扇贝有道180929每日一句
  12. 【Python脚本进阶】2.4、conficker蠕虫(终)
  13. java中英文切换,Java实现多语言切换
  14. 使用PoEdit翻译PO文件(转贴)
  15. python 使用GDAL实现栅格tif转矢量shp
  16. Qt 常用文件对话框及消息对话框使用
  17. 几十年前的老旧照片如何修复?还不知道旧照片怎么恢复清晰吗?
  18. 头歌 初识Redis
  19. 原码/补码的加减运算and溢出判断
  20. 一键封装app--webapp、HybridApp

热门文章

  1. 黄山归来不看岳---黄山游记之上山篇
  2. Linux下七牛云存储qrsync命令行上传同步工具
  3. 关于bootstrap--排版(标题、强调、背景、插入符等)
  4. firefly 环境配置所需工具
  5. HTTP 500 - 内部服务器错误的解决
  6. 你所不知道的Quartz特性
  7. docker images存放路径指定
  8. jquery easyui里datagrid用法记录
  9. 了解Binder机制原理和底层实现
  10. 随机生成大小为100的范围是100-1000的不重复的数组