package com.npnets.thread;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
import org.apache.log4j.Logger;
/**
* 这个类已经被取代了
* 2015-8-7
* @author Mr.zhang
*
*/
public class SendMessThread extends Thread {
private static Logger log = Logger.getLogger(SendMessThread.class);
private String msg;
private String posturl;
public SendMessThread(String msg, String posturl) {
this.msg = msg;
this.posturl = posturl;
}
public void run(){
PostMethod method = null;
HttpClient client = null;
try {
client = new HttpClient();
//请求超时
client.getHttpConnectionManager().getParams().setConnectionTimeout(6000);
String url = posturl;
log.info("Post url:"+url);
method = new PostMethod(url);
RequestEntity requestEntity = new StringRequestEntity(msg);
log.info("Post Message:"+msg);
method.setRequestEntity(requestEntity);
client.executeMethod(method);
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");
}
log.info("response buff : "+buf);
} catch (Exception e) {
e.printStackTrace();
}finally{
log.info("Http StatusCode:"+method.getStatusCode());
log.info("准备释放连接!!");
method.releaseConnection();//释放连接
client.getHttpConnectionManager().closeIdleConnections(0);
log.info("释放连接成功!!");
//第一种
//client.getHttpConnectionManager().closeIdleConnections(0);
//第二种
//HttpClient client2 = new HttpClient(new HttpClientParams(),new SimpleHttpConnectionManager(true) );
//方法三 服务器端设置
//method.setRequestHeader("Connection", "close");
}
}
}
Http Post get
最新推荐文章于 2024-06-05 15:41:16 发布
本文介绍了一个使用Apache HttpClient库实现的发送消息线程类,包括构造方法、运行方法及HTTP POST请求的具体实现。
6029

被折叠的 条评论
为什么被折叠?



