Android HttpURLConnection使用

来源:互联网 发布:滇红 知乎 编辑:程序博客网 时间:2024/06/13 21:42
package com.hc.ddmall.http;


import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Map;


import org.json.JSONException;
import org.json.JSONObject;


import com.hc.ddmall.activity.menu.GoodsDetailsActivity;


import android.os.AsyncTask;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View.MeasureSpec;
import android.widget.Toast;


public class AsyncHttpGet extends AsyncTask<String, Void, String> {
private String urlPath;
private Map<String, String> map;
private Handler handler;
private int whatF,whatS;//失败,成功的what值
public AsyncHttpGet(Handler handler, String urlPath, Map<String, String> map,int whatF,int whatS) {
super();
this.urlPath = urlPath;
this.map = map;
this.handler = handler;
this.whatF = whatF;
this.whatS = whatS;
}
@Override
protected String doInBackground(String... params) {
URL url = null;
String msg = null;
StringBuilder sb = new StringBuilder(urlPath);
HttpURLConnection conn = null;
try {
if(map!=null && map.size()>0){
sb.append('?');
for(Map.Entry<String, String> entry:map.entrySet()){
sb.append(entry.getKey()).append('=')
.append(URLEncoder.encode(entry.getValue(), "UTF-8"))
.append('&');
}
sb.deleteCharAt(sb.length() - 1);
}
String urlStr = sb.toString();
Log.i("print", "urlStr=="+urlStr);
url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
// 设置过期时间为5秒
conn.setConnectTimeout(5 * 1000);
// 连接超时1分钟
conn.setReadTimeout(60 * 1000);
conn.connect();
if (conn.getResponseCode() == 200){
InputStream steam = conn.getInputStream();
StringBuffer strBuffer = new StringBuffer();
byte[] buffer = new byte[1024];
int len = 0;
while ((len = steam.read(buffer)) != -1) {
strBuffer.append(new String(buffer, 0, len));
}
msg = strBuffer.toString();
return msg;
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if (conn != null) {
conn.disconnect();
conn = null;
}
}
return msg;
}


@Override
protected void onPostExecute(String result) {
if(result==null){
handler.sendEmptyMessage(whatF);
}else{
Message message = handler.obtainMessage(whatS);
message.obj = result;
handler.sendMessage(message);
/*String _cCurrentResult="";
try {
_cCurrentResult = new JSONObject(result).getJSONObject("Success").toString();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(_cCurrentResult.equals("true")){

}
else{
handler.sendEmptyMessage(whatF);
}*/

}
}
}
0 0
原创粉丝点击