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; } }