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);
}*/
}
}
}
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
- Android HttpURLConnection对象使用
- Android HttpURLConnection 基础使用
- Android HttpURLConnection使用
- Android 使用HttpURLConnection 下载
- android学习---使用HttpURLConnection
- Android平台下使用HttpUrlConnection
- Android 怎么样使用HttpURLConnection POST?
- android中HttpURLConnection的使用
- Android使用HttpURLConnection获取数据
- Android使用HttpURLConnection下载图片
- Android 使用HttpUrlConnection处理请求
- Android使用HttpURLConnection上传文件
- Android 中HttpURLConnection 的使用
- Android使用HttpURLConnection访问接口
- Android使用HttpURLConnection请求网络资源
- Android中HttpURLConnection使用详解
- Android中HttpURLConnection使用详解
- Android 中 HttpURLConnection 使用详解
- can not be represented as java.sql.Timestamp
- callback site:blog.csdn.net/amazing_alex/article
- Altium Designer 使用sheetsymbol 绘制重复重复使用的模块
- CentOS利用iso镜像做本地yum源-make等命令无权限解决
- 苹果电脑MAC 在Finder里面显示隐藏文件方法
- Android HttpURLConnection使用
- Leetcode25: Longest Common Prefix
- centos6安装mysql(离线与在线)
- 5个最佳的Android测试框架(带示例)
- eclipse 全字符匹配搜索
- javascript学习十三:闭包
- java错误---FATAL ERROR in native method: JDWP No transports initialized,
- 本地使用msysgit操作github
- 深入单例模式