package com.my;
import java.io.IOException;
import java.io.InputStream;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.params.ConnRouteParams;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.util.ByteArrayBuffer;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
public class Net {
private InputStream inputstream;
private DefaultHttpClient httpClient;
private boolean isStop = false;
/**
* ��Դ����
*
* @param context
* ��������
* @param url
* ����url��ַ
* @return
* @throws ClientProtocolException
* @throws IOException
*/
public byte[] downloadResource(Context context, String url)
throws ClientProtocolException, IOException {
isStop = false;
ByteArrayBuffer buffer = null;
HttpGet hp = new HttpGet(url);
httpClient = new DefaultHttpClient();
String netType = isNetType(context);
if (netType != null & netType.equals("cmwap")) {
HttpHost proxy = new HttpHost("10.0.0.172", 80);
httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY,
proxy);
}
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(),
5 * 1000);
HttpConnectionParams.setSoTimeout(httpClient.getParams(), 60 * 1000);
HttpResponse response = httpClient.execute(hp);
if (response.getStatusLine().getStatusCode() == 200) {
inputstream = response.getEntity().getContent();
if (inputstream != null) {
int i = (int) response.getEntity().getContentLength();
buffer = new ByteArrayBuffer(1024);
byte[] tmp = new byte[1024];
int len;
while (((len = inputstream.read(tmp)) != -1)
&& (false == isStop)) {
buffer.append(tmp, 0, len);
}
}
cancel();
}
return buffer.toByteArray();
}
/**
* ǿ�ƹر�����
*
* @throws IOException
*/
public synchronized void cancel() throws IOException {
if (null != httpClient) {
isStop = true;
httpClient.getConnectionManager().shutdown();
httpClient = null;
}
if (inputstream != null) {
inputstream.close();
}
}
/**
* �жϽ��������
*
* @return
*/
public static String isNetType(Context context) {
String nettype = null;
if (context == null) {
return null;
}
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo = connectivityManager.getActiveNetworkInfo();
if (mobNetInfo != null) {
if (mobNetInfo.getType() == ConnectivityManager.TYPE_WIFI) {
nettype = mobNetInfo.getTypeName(); // ��ǰ����������WIFI
} else {
nettype = mobNetInfo.getExtraInfo();// ��ǰ����������cmnet/cmwap
}
}
return nettype;
}
}