package com.vanco.abplayer.util;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ConnectException;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.DataFormatException;
import java.util.zip.GZIPInputStream;
import java.util.zip.ZipInputStream;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.apache.http.Header;
import org.apache.http.HttpClientConnection;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ProtocolException;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.RedirectHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.ByteArrayBuffer;
import org.apache.http.util.EncodingUtils;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.helper.HttpConnection.Response;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class HttpUtil {
public static String cookieName = "";
public static String cookieValue = "";
public static String hostBase = "";
public static String getHtmlString(String urlString) {
try {
URL url = new URL(urlString);
URLConnection ucon = url.openConnection();
InputStream instr = ucon.getInputStream();
BufferedInputStream bis = new BufferedInputStream(instr);
ByteArrayBuffer baf = new ByteArrayBuffer(500);
int current = 0;
while ((current = bis.read()) != -1) {
baf.append((byte) current);
}
return EncodingUtils.getString(baf.toByteArray(), "utf-8");
} catch (Exception e) {
Log.d("win","lllll"+e.toString());
return "";
}
}
public static String getXmlDecompress(String urlString) {
Response rsp = null;
String temp = "";
try {
rsp = (Response) Jsoup.connect(urlString).execute();
temp = EncodingUtils.getString(CompressionTools.decompressXML(rsp.bodyAsBytes()), "utf-8");
Log.d("TAG","=======>Xml解压成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d("TAG","=======>Xml解压失败:"+e.toString());
} catch (DataFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d("TAG","=======>Xml解压失败:"+e.toString());
}
return temp;
}
public static String sendPost(String url, String params)
{
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try
{
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(params); //②
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null)
{
result += "\n" + line;
}
}
catch (Exception e)
{
System.out.println("发送POST请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally
{
try
{
if (out != null)
{
out.close();
}
if (in != null)
{
in.close();
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
return result;
}
public static String httpGetHost(String url) {
HttpGet httpget = new HttpGet(url);
String strResult = "";
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 5000);
HttpConnectionParams.setSoTimeout(httpParams, 5000);
HttpClient httpclient;
try {
httpclient = new DefaultHttpClient(httpParams);
HttpResponse response = httpclient.execute(httpget);
System.out.println(response.getStatusLine().getStatusCode());
if (response.getStatusLine().getStatusCode() == 200) {
strResult = EntityUtils.toString(response.getEntity(),
HTTP.UTF_8);
}
} catch (ConnectException e) {
e.printStackTrace();
System.out.println("hosterror");
} catch (ClientProtocolException e) {
System.out.println("Client");
e.printStackTrace();
} catch (IOException e) {
System.out.println("IO");
e.printStackTrace();
}
return strResult;
}
public static String httpGet(String url) {
System.out.println("httpGet" + url);
HttpGet httpget = new HttpGet(url);
String strResult = null;
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
HttpConnectionParams.setSoTimeout(httpParams, 10000);
HttpClient httpclient;
try {
httpclient = new DefaultHttpClient(httpParams);
httpget.setHeader("Cookie", cookieName + "=" + cookieValue);
HttpResponse response = httpclient.execute(httpget);
System.out.println(response.getStatusLine().getStatusCode());
if (response.getStatusLine().getStatusCode() == 200) {
strResult = EntityUtils.toString(response.getEntity(),
HTTP.UTF_8);
// System.out.println(strResult);
System.out.println("getFinish");
}
} catch (ConnectException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
System.out.println("Client");
e.printStackTrace();
} catch (IOException e) {
System.out.println("IO");
e.printStackTrace();
}
return strResult;
}
public static String httpGetNoResult(String url) {
System.out.println("httpGetNo" + url);
HttpGet httpget = new HttpGet(hostBase + url);
String strResult = "";
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
HttpConnectionParams.setSoTimeout(httpParams, 10000);
HttpClient httpclient;
try {
httpclient = new DefaultHttpClient(httpParams);
httpget.setHeader("Cookie", cookieName + "=" + cookieValue);
HttpResponse response = httpclient.execute(httpget);
System.out.println(response.getStatusLine().getStatusCode());
/*
* if(response.getStatusLine().getStatusCode() == 200){ strResult =
* EntityUtils.toString(response.getEntity(), HTTP.UTF_8);
* System.out.println(strResult); System.out.println("getFinish"); }
*/
} catch (Exception e) {
e.printStackTrace();
strResult = "error";
}
return strResult;
}
public static Bitmap HttpGetBmp(String url) {
HttpGet httpget = new HttpGet(url);
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
HttpConnectionParams.setSoTimeout(httpParams, 10000);
Bitmap bitmap = null;
try {
HttpClient httpclient = new DefaultHttpClient(httpParams);
HttpResponse response = httpclient.execute(httpget);
InputStream is = response.getEntity().getContent();
byte[] bytes = new byte[1024];
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int count = 0;
while ((count = is.read(bytes)) != -1) {
System.out.println("readBitmap");
bos.write(bytes, 0, count);
}
byte[] byteArray = bos.toByteArray();
bitmap = BitmapFactory.decodeByteArray(byteArray, 0,
byteArray.length);
is.close();
bos.close();
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
public static InputStream HttpGetBmpInputStream(String url) {
HttpGet httpget = new HttpGet(url);
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
HttpConnectionParams.setSoTimeout(httpParams, 10000);
InputStream is = null;
try {
HttpClient httpclient = new DefaultHttpClient(httpParams);
HttpResponse response = httpclient.execute(httpget);
is = response.getEntity().getContent();
} catch (Exception e) {
e.printStackTrace();
}
return is;
}
public static Integer GetCookie(String url, String number, String pw,
String select, String host) {
System.out.println("GetCookie");
int result = 4;
HttpPost httpPost = new HttpPost(hostBase + url);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("number", number));
nvps.add(new BasicNameValuePair("passwd", pw));
nvps.add(new BasicNameValuePair("select", select));
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
HttpConnectionParams.setSoTimeout(httpParams, 10000);
try {
DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
httpClient.setRedirectHandler(new RedirectHandler() {
@Override
public boolean isRedirectRequested(HttpResponse response,
HttpContext context) {
return false;
}
@Override
public URI getLocationURI(HttpResponse response,
HttpContext context) throws ProtocolException {
return null;
}
});
httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
HttpResponse response = httpClient.execute(httpPost);
System.out.println(response.getStatusLine().getStatusCode());
if (response.getStatusLine().getStatusCode() == 200) {
return 2;
} else if (response.getStatusLine().getStatusCode() == 302) {
Header[] headers = response.getHeaders("Location");
if (headers != null && headers.length > 0) {
List<Cookie> list = httpClient.getCookieStore()
.getCookies();
for (Cookie c : list) {
cookieName = c.getName();
cookieValue = c.getValue();
}
System.out.println(cookieName + cookieValue);
return 3;
}
} else if (response.getStatusLine().getStatusCode() == 404) {
return -1;
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static String httpGetCookie(String url) {
System.out.println("httpGetCookie" + url);
HttpGet httpget = new HttpGet(hostBase + url);
String strResult = "";
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 15000);
HttpConnectionParams.setSoTimeout(httpParams, 15000);
try {
DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
httpClient.setRedirectHandler(new RedirectHandler() {
@Override
public boolean isRedirectRequested(HttpResponse response,
HttpContext context) {
return false;
}
@Override
public URI getLocationURI(HttpResponse response,
HttpContext context) throws ProtocolException {
return null;
}
});
httpget.setHeader("Cookie", cookieName + "=" + cookieValue);
HttpResponse response = httpClient.execute(httpget);
if (response.getStatusLine().getStatusCode() == 200) {
strResult = EntityUtils.toString(response.getEntity(),
HTTP.UTF_8);
} else if (response.getStatusLine().getStatusCode() == 302) {
strResult = "302"; // cookieʧЧ�������ض����־�������µ�¼��ȡ
} else if (response.getStatusLine().getStatusCode() == 404) {
strResult = "-1";
}
} catch (Exception e) {
e.printStackTrace();
strResult = "4";
}
return strResult;
}
public static String httpPostCookie(String url, String id, String data) {
System.out.println("httpPostCookie" + url);
String result = "4";
HttpPost httpPost = new HttpPost(hostBase + url);
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("marc_no", id));
nvps.add(new BasicNameValuePair("r_content", data));
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
HttpConnectionParams.setSoTimeout(httpParams, 10000);
try {
DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);
httpClient.setRedirectHandler(new RedirectHandler() {
@Override
public boolean isRedirectRequested(HttpResponse response,
HttpContext context) {
return false;
}
@Override
public URI getLocationURI(HttpResponse response,
HttpContext context) throws ProtocolException {
return null;
}
});
httpPost.setHeader("Cookie", cookieName + "=" + cookieValue);
httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
HttpResponse response = httpClient.execute(httpPost);
System.out.println(response.getStatusLine().getStatusCode());
System.out.println(EntityUtils.toString(response.getEntity(),
HTTP.UTF_8) + "add");
if (response.getStatusLine().getStatusCode() == 200) {
return "2";
} else if (response.getStatusLine().getStatusCode() == 302) {
Header[] headers = response.getHeaders("Location");
if (headers != null && headers.length > 0) {
System.out.println(headers[0].getValue());
return "3";
}
} else if (response.getStatusLine().getStatusCode() == 404) {
return "-1";
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public static int getCookie(String url) {
System.out.println("getCookie" + url);
HttpGet httpGet = new HttpGet(hostBase + url);
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
httpClient.setRedirectHandler(new RedirectHandler() {
@Override
public boolean isRedirectRequested(HttpResponse response,
HttpContext context) {
return false;
}
@Override
public URI getLocationURI(HttpResponse response,
HttpContext context) throws ProtocolException {
return null;
}
});
HttpResponse response = httpClient.execute(httpGet);
System.out.println(response.getStatusLine().getStatusCode());
System.out.println(EntityUtils.toString(response.getEntity(),
HTTP.UTF_8) + "add");
if (response.getStatusLine().getStatusCode() == 200) {
Header[] heads = response.getAllHeaders();
System.out.println(heads.length);
for (Header header : heads) {
System.out.println(header.getName() + " = "
+ header.getValue());
}
return 2;
} else if (response.getStatusLine().getStatusCode() == 302) {
Header[] headers = response.getHeaders("Location");
if (headers != null && headers.length > 0) {
System.out.println(headers[0].getValue());
return 3;
}
} else if (response.getStatusLine().getStatusCode() == 404) {
return -1;
}
} catch (Exception e) {
e.printStackTrace();
}
return 1;
}
}