我打电话给房地产网站的网络服务,为此我建立了我自己的方法和所有.. 我开发了一个执行方法,我将根据我的要求设置我的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 case中,我使用带有我想要的url的httpget发送请求,但那时生成了主线程异常的网络。
答案 0 :(得分:2)
在您的AndroidManifest中,您还可以使用以下内容跳过错误:
<uses-sdk android:minSdkVersion="8"
android:targetSdkVersion="8" />
答案 1 :(得分:1)
将您的代码更改为低于1,即以这种方式执行调用
new Thread()
{
@Override
public void run()
{
Execute();
}
}.start();
答案 2 :(得分:0)
您必须使用Thread
或AsyncTask
,this post解释了很多关于此错误的内容。