package com.wise.pubclas;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
/**
* 多线程操作类
* @author honesty
*/
public class NetThread {
static String TAG = "NetThread";
/**
* Get获取数据
* @author honesty
*/
public static class GetDataThread extends Thread{
Handler handler;
String url;
int what;
/**
* Get获取数据
* @param handler
* @param url
* @param what
*/
public GetDataThread(Handler handler,String url,int what){
this.handler = handler;
this.url = url;
this.what =what;
}
@Override
public void run() {
super.run();
try {
Log.d(TAG, url);
URL myURL = new URL(url);
URLConnection httpsConn = (URLConnection) myURL.openConnection();
if (httpsConn != null) {
httpsConn.setConnectTimeout(20*1000);
httpsConn.setReadTimeout(20*1000);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
InputStream inputStream = httpsConn.getInputStream();
byte[] buffer = new byte[1024];
int len = -1;
while((len = inputStream.read(buffer))!= -1){
baos.write(buffer, 0, len);
}
String data = new String(baos.toByteArray(), "UTF-8");
inputStream.close();
//insr.close();
Message message = new Message();
message.what = what;
message.obj = data;
handler.sendMessage(message);
}else{
Log.d(TAG, "URLConnection");
Message message = new Message();
message.what = what;
message.obj = "";
handler.sendMessage(message);
}
}catch (Exception e) {
e.printStackTrace();
Message message = new Message();
message.what = what;
message.obj = "";
handler.sendMessage(message);
}
}
}
public static class putDataThread extends Thread{
Handler handler;
String url;
int what;
List<NameValuePair> parms;
public putDataThread(Handler handler,String url,List<NameValuePair> parms,int what){
this.handler = handler;
this.url = url;
this.what =what;
this.parms = parms;
}
@Override
public void run() {
super.run();
try {
//System.out.println("httpPut = "+url);
BasicHttpParams httpParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
HttpConnectionParams.setSoTimeout(httpParams, 10000);
HttpClient client = new DefaultHttpClient(httpParams);
HttpPut httpPut = new HttpPut(url);
if(parms != null){
httpPut.setEntity(new UrlEncodedFormEntity(parms,HTTP.UTF_8));
}
HttpResponse response = client.execute(httpPut);
if (response.getStatusLine().getStatusCode() == 200){
HttpEntity entity = response.getEntity();
BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent()));
StringBuilder sb = new StringBuilder();
String line = "";
while ((line = reader.readLine()) != null) {
sb.append(line);
}
Message message = new Message();
message.what = what;
message.obj = sb.toString();
handler.sendMessage(message);
}else{
Message message = new Message();
message.what = what;
message.obj = "";
handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
Message message = new Message();
message.what = what;
message.obj = "";
handler.sendMessage(message);
}
}
}
public static class DeleteThread extends Thread{
Handler handler;
String url;
int what;
public DeleteThread(Handler handler,String url,int what){
this.handler = handler;
this.url = url;
this.what =what;
}
@Override
public void run() {
super.run();
try {
HttpClient client = new DefaultHttpClient();
HttpDelete httpDelete = new HttpDelete(url);
HttpResponse response = client.execute(httpDelete);
if (response.getStatusLine().getStatusCode() == 200){
HttpEntity entity = response.getEntity();
BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent()));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
Message message = new Message();
message.what = what;
message.obj = sb.toString();
handler.sendMessage(message);
}else{
Message message = new Message();
message.what = what;
message.obj = "";
handler.sendMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
Message message = new Message();
message.what = what;
message.obj = "";
handler.sendMessage(message);
}
}
}
public static class postDataThread extends Thread{
Handler handler;
String url;
int what;
int index = 0 ;
List<NameValuePair> params;
public postDataThread(Handler handler,String url,List<NameValuePair> params,int what,int index){
this.handler = handler;
this.url = url;
this.what = what;
this.params = params;
this.index = index;
}
public postDataThread(Handler handler,String url,List<NameValuePair> params,int what){
this.handler = handler;
this.url = url;
this.what = what;
this.params = params;
}
@Override
public void run() {
super.run();
//Log.d(TAG, url);
HttpPost httpPost = new HttpPost(url);
try {
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 20000);
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 20000);
HttpResponse httpResponse = client.execute(httpPost);
if(httpResponse.getStatusLine().getStatusCode() == 200){
String strResult = EntityUtils.toString(httpResponse.getEntity());
Message message = new Message();
message.what = what;
message.arg1 = index;
message.obj = strResult;
handler.sendMessage(message);
}else{
Log.d(TAG, "状态" +httpResponse.getStatusLine().getStatusCode());
Message message = new Message();
message.what = what;
message.arg1 = index;
message.obj = "";
handler.sendMessage(message);
}
} catch (Exception e) {
Message message = new Message();
message.what = what;
message.arg1 = index;
message.obj = "";
handler.sendMessage(message);
e.printStackTrace();
}
}
}
}