ACSTstHttpUrlCnicotion 聯網強求工具類
package liziqiang.bawei.com.lziqiang20180921;
import android.os.AsyncTask;
import com.google.common.io.CharStreams;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
/**
-
@author 李自強
-
@data 2018.09.21
-
封裝聯網工具類
*/
public class HttpHelper {private HttpListener listener;
public HttpHelper(HttpListener listener){
this.listener=listener;
}public void get(String url){
new MyAsyncTask(url).execute();
}private class MyAsyncTask extends AsyncTask<String,Integer,String>{
private String urlPath; public MyAsyncTask(String url){ this.urlPath=url; } //在子執行緒執行的方法 @Override protected String doInBackground(String... strings) { String data=""; try { URL url=new URL(urlPath); HttpURLConnection connection= (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.connect(); int code=connection.getResponseCode(); if(code==HttpURLConnection.HTTP_OK){ InputStream is= connection.getInputStream(); data=convertStream2String(is); }else{ data="0"; } } catch (Exception e) { e.printStackTrace(); } return data; } //在主執行緒執行 @Override protected void onPostExecute(String s) { super.onPostExecute(s); if("0".equals(s)){ listener.fail(); }else{ listener.success(s); } }
}
public interface HttpListener{
void success(String data);
void fail();
}public String convertStream2String(InputStream input){
ByteArrayOutputStream baos = new ByteArrayOutputStream();// 自帶快取的輸出流
int len=-1;
byte [] buffer = new byte[512];
try {
while((len = input.read(buffer))!=-1){
baos.write(buffer, 0, len); // 將讀到的位元組,寫入baos
}
return new String(baos.toByteArray());
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}