package com.tiancikeji.zaoke.httpservice;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.client.CookieStore;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.protocol.ClientContext;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import com.tiancikeji.zaoke.httpservice.base.HttpResponseEntity;
import android.util.Log;
public class HTTP {
private static final String TAG = "HTTP";
private static DefaultHttpClient httpClient = createHttpClient();
private static HttpContext localContext = new BasicHttpContext();
private static CookieStore cookieStore = new BasicCookieStore();
private static DefaultHttpClient createHttpClient() {
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
HttpProtocolParams.setContentCharset(params, "ISO-8859-1");
HttpProtocolParams.setUseExpectContinue(params, true);
SchemeRegistry schReg = new SchemeRegistry();
schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
schReg.register(new Scheme("https", PlainSocketFactory.getSocketFactory(), 433));
ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);
DefaultHttpClient hc = new DefaultHttpClient(conMgr, params);
hc.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 8000);
hc.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 8000);
return hc;
};
static {
localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);
}
public static boolean deleteMothod(String pathUrl) {
InputStream input = null;
boolean b = false;
HttpURLConnection httpConn = null;
try {
// 建立连接
URL url = new URL(pathUrl);
httpConn = (HttpURLConnection) url.openConnection();
httpConn.setRequestMethod("DELETE");// 设置URL请求方法
httpConn.setRequestProperty("x-msg-require-headers", "timestamp, expiry, persistence");
int responseCode = httpConn.getResponseCode();
if (responseCode == 200)
b = true;
} catch (Exception ex) {
ex.printStackTrace();
} finally {
if (httpConn != null)
httpConn.disconnect();
try {
if (input != null)
input.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return b;
}
// public static HttpResponseEntity postByHttpUrlConnection(String
// pathUrl,Object o){}
public static HttpResponseEntity get(String URL) {
String url;
if(URL.indexOf("?") > 0){
url = URL + "&os=android";
}else{
url = URL + "?os=android";
}
Log.i("HTTP_URL", url);
HttpGet listGet = new HttpGet(url);
HttpResponse response;
HttpResponseEntity hre = new HttpResponseEntity();
InputStream input = null;
try {
response = httpClient.execute(listGet, localContext);
int code = response.getStatusLine().getStatusCode();
hre.setHttpResponseCode(code);
if (code != 204) {
input = response.getEntity().getContent();
byte[] b = readInputStream(input);
hre.setB(b);
}
return hre;
} catch (Exception e) {
// TODO Auto-generated catch block
Log.e(TAG, "HTTPCONNECTION", e);
return hre;
} finally {
if (input != null) {
try {
input.close();
Log.d(TAG, "CONNECTIONCLOSE");
} catch (IOException e) {
Log.e(TAG, "CONNECTIONCLOSE", e);
}
}
}
}
public static List<Cookie> getCookie() {
return cookieStore.getCookies();
}
public static void clearCookie() {
if (cookieStore != null) {
cookieStore.clear();
}
}
static void addCookie(HttpGet get) {
StringBuilder tmpcookies = new StringBuilder();
List<Cookie> cookies = getCookie();
for (Cookie c : cookies) {
tmpcookies.append(c.getName());
tmpcookies.append("=");
tmpcookies.append(c.getValue());
tmpcookies.append(";");
tmpcookies.append("domain=");
tmpcookies.append(c.getDomain());
}
get.setHeader("Cookie", tmpcookies.toString());
}
public static byte[] readInputStream(InputStream inStream) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}
inStream.close();
return outStream.toByteArray();
}
}