我调用了一个房地产网站的web服务,为此我构建了我自己的方法。我开发了一个execute方法,我将根据我的要求设置我的url,如下所示:
public void Execute(RequestMethod method) throws Exception
{
switch(method) {
case GET:
{
//add parameters
String combinedParams = "";
if(!params.isEmpty()){
combinedParams += "?";
for(NameValuePair p : params)
{
String paramString = p.getName() + "=" + URLEncoder.encode(p.getValue(),"UTF-8");
if(combinedParams.length() > 1)
{
combinedParams += "&" + paramString;
}
else
{
combinedParams += paramString;
}
}
}
HttpGet request = new HttpGet(url + combinedParams);
//add headers
for(NameValuePair h : headers)
{
request.addHeader(h.getName(), h.getValue());
}
**executeRequest(request, url);** // This throws an exception
break;
}
case POST:
{
HttpPost request = new HttpPost(url);
//add headers
for(NameValuePair h : headers)
{
request.addHeader(h.getName(), h.getValue());
}
if(!params.isEmpty()){
request.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
}
executeRequest(request, url);
break;
}
}
}在get情况下,我使用httpget发送带有我想要的url的请求,但此时会生成主线程上的网络异常。
发布于 2012-06-30 14:40:41
在AndroidManifest中,您还可以使用以下命令跳过错误:
<uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="8" />发布于 2011-12-08 14:28:47
将您的代码更改为以下一个i.e调用执行方式
new Thread()
{
@Override
public void run()
{
Execute();
}
}.start();发布于 2014-11-08 22:39:27
你必须使用Thread或AsyncTask,this post解释了很多关于这个错误的内容。
https://stackoverflow.com/questions/8427045
复制相似问题