package smsbao.internal;
|
|
import java.net.Socket;
|
|
import org.apache.http.ConnectionReuseStrategy;
|
import org.apache.http.Header;
|
import org.apache.http.HeaderIterator;
|
import org.apache.http.HttpHost;
|
import org.apache.http.HttpRequestInterceptor;
|
import org.apache.http.HttpResponse;
|
import org.apache.http.HttpVersion;
|
import org.apache.http.entity.ByteArrayEntity;
|
import org.apache.http.impl.DefaultConnectionReuseStrategy;
|
import org.apache.http.impl.DefaultHttpClientConnection;
|
import org.apache.http.message.BasicHttpEntityEnclosingRequest;
|
import org.apache.http.params.HttpParams;
|
import org.apache.http.params.HttpProtocolParams;
|
import org.apache.http.params.SyncBasicHttpParams;
|
import org.apache.http.protocol.BasicHttpContext;
|
import org.apache.http.protocol.ExecutionContext;
|
import org.apache.http.protocol.HttpContext;
|
import org.apache.http.protocol.HttpProcessor;
|
import org.apache.http.protocol.HttpRequestExecutor;
|
import org.apache.http.protocol.ImmutableHttpProcessor;
|
import org.apache.http.protocol.RequestConnControl;
|
import org.apache.http.protocol.RequestContent;
|
import org.apache.http.protocol.RequestExpectContinue;
|
import org.apache.http.protocol.RequestTargetHost;
|
import org.apache.http.protocol.RequestUserAgent;
|
import org.apache.http.util.EntityUtils;
|
|
|
public class HttpClientUtil {
|
|
HttpParams params;
|
HttpProcessor httpproc;
|
HttpRequestExecutor httpexecutor;
|
HttpContext context;
|
HttpHost host;
|
DefaultHttpClientConnection conn;
|
ConnectionReuseStrategy connStrategy;
|
|
String sendURL = "";
|
|
public HttpClientUtil(String ip, int port, String SendURL) {
|
this.sendURL = SendURL;
|
params = new SyncBasicHttpParams();
|
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
|
HttpProtocolParams.setContentCharset(params, "GB2312");
|
HttpProtocolParams.setUserAgent(params, "HttpComponents/1.1");
|
HttpProtocolParams.setUseExpectContinue(params, true);
|
|
httpproc = new ImmutableHttpProcessor(new HttpRequestInterceptor[] {
|
// Required protocol interceptors
|
new RequestContent(), new RequestTargetHost(),
|
// Recommended protocol interceptors
|
new RequestConnControl(), new RequestUserAgent(), new RequestExpectContinue() });
|
|
httpexecutor = new HttpRequestExecutor();
|
context = new BasicHttpContext(null);
|
host = new HttpHost(ip, port);
|
|
conn = new DefaultHttpClientConnection();
|
connStrategy = new DefaultConnectionReuseStrategy();
|
context.setAttribute(ExecutionContext.HTTP_CONNECTION, conn);
|
context.setAttribute(ExecutionContext.HTTP_TARGET_HOST, host);
|
}
|
|
public String sendGetMessage(String user, String pwd, String ServiceID, String dest, String sender, String msg) {
|
String msgid = "";
|
try {
|
|
if (!conn.isOpen()) {
|
Socket socket = new Socket(host.getHostName(), host.getPort());
|
conn.bind(socket, params);
|
}
|
String par = sendURL.trim() + "?src=%s&pwd=%s&ServiceID=%s&dest=%s&sender=%s&msg=%s";
|
String url = String.format(par, user, pwd, ServiceID, dest, sender, msg);
|
// String url = String.format(par, user, pwd, ServiceID, dest, sender,
|
// URLEncoder.encode(msg, "GB2312"));
|
BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("GET", url);
|
request.getRequestLine().getUri();
|
// System.out.println(">> Request URI: " + request.getRequestLine().getUri());
|
|
request.setParams(params);
|
httpexecutor.preProcess(request, httpproc, context);
|
HttpResponse response = httpexecutor.execute(request, conn, context);
|
response.setParams(params);
|
|
httpexecutor.postProcess(response, httpproc, context);
|
|
response.getStatusLine();
|
// DeBug("<< Response: " + response.getStatusLine());
|
msgid = EntityUtils.toString(response.getEntity());
|
// DeBug(msgid);
|
// DeBug("==============");
|
if (!connStrategy.keepAlive(response, context)) {
|
conn.close();
|
} else {
|
// System.out.println("Connection kept alive...");
|
conn.close();
|
}
|
|
} catch (Exception e) {
|
msgid = "";
|
} finally {
|
return msgid;
|
}
|
}
|
|
public String sendPostMessage(String user, String pwd, String ServiceID, String dest, String sender, String msg) {
|
String msgid = "";
|
try {
|
|
String parf = "src=%s&pwd=%s&ServiceID=%s&dest=%s&sender=%s&msg=%s";
|
String par = String.format(parf, user, pwd, ServiceID, dest, sender, msg);
|
// String url = String.format(par, user, pwd, ServiceID, dest, sender,
|
// URLEncoder.encode(msg, "GB2312"));
|
BasicHttpEntityEnclosingRequest request = new BasicHttpEntityEnclosingRequest("POST", sendURL.trim());
|
request.getRequestLine().getUri();
|
// System.out.println(">> Request URI: " + request.getRequestLine().getUri());
|
|
// System.out.println(">> Request URI:" + par);
|
byte[] data1 = par.getBytes("ASCII");
|
ByteArrayEntity entiy = new ByteArrayEntity(data1);
|
// hwRequest.ContentType = "application/x-www-form-urlencoded";
|
// hwRequest.ContentLength = bData.Length;
|
entiy.setContentType("application/x-www-form-urlencoded");
|
request.setEntity(entiy);
|
|
request.getRequestLine().getMethod();
|
// System.out.println(">> Request URI: " + request.getRequestLine().getMethod());
|
request.setParams(params);
|
|
if (!conn.isOpen()) {
|
Socket socket = new Socket(host.getHostName(), host.getPort());
|
conn.bind(socket, params);
|
}
|
|
HeaderIterator it = request.headerIterator();
|
while (it.hasNext()) {
|
Header hesd = it.nextHeader();
|
// System.out.println(">> Request Header: " + hesd.getName() + " : " + hesd.getValue());
|
}
|
|
httpexecutor.preProcess(request, httpproc, context);
|
HttpResponse response = httpexecutor.execute(request, conn, context);
|
response.setParams(params);
|
|
httpexecutor.postProcess(response, httpproc, context);
|
|
response.getStatusLine();
|
// DeBug("<< Response: " + response.getStatusLine());
|
msgid = EntityUtils.toString(response.getEntity());
|
// DeBug(msgid);
|
// DeBug("==============");
|
if (!connStrategy.keepAlive(response, context)) {
|
conn.close();
|
} else {
|
// System.out.println("Connection kept alive...");
|
conn.close();
|
}
|
conn.close();
|
|
} catch (Exception e) {
|
msgid = "";
|
} finally {
|
return msgid;
|
}
|
}
|
|
public static void DeBug(Object obj) {
|
System.out.println(obj);
|
}
|
|
}
|