解决方案 »
- android中PDF分页
- android GPS 问题
- 如何构造调用发短信的intent
- 将android环境配置好后,出现模拟器不能启动的问题!
- 一个android设备怎么使用另外一个android设备的摄像头?
- 关于android的文件输入流
- 请教一个问题——是关于android的
- JNI方法GetStringChars遇到数字截断的问题,在线等。
- 有人用xe6做过实际的安卓app开发吗?请问app后台是你们是怎么选架构的啊?app前台用delphi xe6开发,我相信这个比较快上手,可是app后台如何搞定
- 不能引用另一方法中定义的内部类中非终态变量
- android程序,eclipse没报错,但是运行会意外停止
- ListView圆角
查一查是不是这个原因吧,
如果不是,把详细的错误信息贴上来
// 如果本系统为4.0以上(Build.VERSION_CODES.ICE_CREAM_SANDWICH为android4.0)
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
// 详见StrictMode文档
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
.detectDiskReads().detectDiskWrites().detectNetwork()
.penaltyLog().build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects().detectLeakedClosableObjects()
.penaltyLog().penaltyDeath().build());
}
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.os.Handler;
import android.util.Log;
public class HttpConnectionUtil {
public static enum HttpMethod {GET, POST}
public void asyncConnect(final String url, final HttpMethod method, final HttpConnectionCallback callback) {
asyncConnect(url, null, method, callback);
}
public void syncConnect(final String url, final HttpMethod method, final HttpConnectionCallback callback) {
syncConnect(url, null, method, callback);
}
public void asyncConnect(final String url, final Map<String, String> params,
final HttpMethod method, final HttpConnectionCallback callback) {
Handler handler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
syncConnect(url, params, method, callback);
}
};
handler.post(runnable);
}
public void syncConnect(final String url, final Map<String, String> params,
final HttpMethod method, final HttpConnectionCallback callback) {
String json = null;
BufferedReader reader = null;
try {
HttpClient client = new DefaultHttpClient();
HttpUriRequest request = getRequest(url, params, method);
HttpResponse response = client.execute(request);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuilder sb = new StringBuilder();
for (String s = reader.readLine(); s != null; s = reader.readLine()) {
sb.append(s);
}
json = sb.toString();
}
} catch (ClientProtocolException e) {
Log.e("HttpConnectionUtil", e.getMessage(), e);
} catch (IOException e) {
Log.e("HttpConnectionUtil", e.getMessage(), e);
} finally {
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
// ignore me
}
}
callback.execute(json);
}
private HttpUriRequest getRequest(String url, Map<String, String> params, HttpMethod method) {
if (method.equals(HttpMethod.POST)) {
List<NameValuePair> listParams = new ArrayList<NameValuePair>();
if (params != null) {
for (String name : params.keySet()) {
listParams.add(new BasicNameValuePair(name, params.get(name)));
}
}
try {
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(listParams);
HttpPost request = new HttpPost(url);
request.setEntity(entity);
return request;
} catch (UnsupportedEncodingException e) {
// Should not come here, ignore me.
throw new java.lang.RuntimeException(e.getMessage(), e);
}
} else {
if (url.indexOf("?") < 0) {
url += "?";
}
if (params != null) {
for (String name : params.keySet()) {
url += "&" + name + "=" + URLEncoder.encode(params.get(name));
}
}
HttpGet request = new HttpGet(url);
return request;
}
}
}package UtilityBundle;public interface HttpConnectionCallback {
void execute(String response);
}
不知道怎么实现这个接口,我直接用Login extends Activity implements HttpConnectionCallback 实现后,但执行不了void execute(String response){这里如果操作response就会出错}