【发布时间】:2013-06-11 00:08:31
【问题描述】:
我试图在 java 上使用 HttpRequest 方法,但它不起作用,这是我的代码
package com.example.phpconnect;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import android.util.Log;
public class httpHandler {
public String post(String posturl){
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(posturl);
Log.w("Se envio","Fase 1");
HttpResponse resp = httpclient.execute(httppost);
HttpEntity ent = resp.getEntity();
Log.w("Se envio","Fase 2");
String text = EntityUtils.toString(ent);
Log.w("Se envio","Fase 3");
return text;
}
catch(Exception e){
Log.w("Se envio","Error");
return "Error";
}
}
}
它在第一个日志之前工作正常,然后它抛出错误,请有人知道问题出在哪里?谢谢!
【问题讨论】:
-
关于异常是什么的一些细节怎么样,比如堆栈跟踪。没有那个就很难搞清楚。
-
我不明白,我只有那个代码,还有我的 MainActivity,我也必须发布那个代码吗?
-
在您的 catch 块中,您需要记录来自
Exception e的堆栈跟踪。我不是 android 人,但通常情况下,您只需执行e.printStackTrace,这将转到System.out。如果你不能这样做,至少记录来自Exception的消息,如下所示:Log.w(e.getMessage()); -
在查看 android Log API 文档时,您可以像这样记录堆栈跟踪:
Log.w("httpHandler", e); -
看不到错误日志,但我敢打赌您传递的 URL 无效。它应该被编码。一种方法是
URI.encode(string)。哦,喜欢这个标题:)
标签: java android httprequest httpresponse