目的是异步解析网络上的文件,但是得到的HttpEntity对象老是为空,求大侠求解,先谢了!异步解析文件代码如下:
package com.wm.service;import java.util.ArrayList;import org.apache.http.HttpEntity;import com.wm.activity.MainActivity;
import com.wm.entity.Music;import android.os.AsyncTask;
import android.util.Log;public class MusicXmlParserAsynTask extends AsyncTask<String ,String, ArrayList<Music>> { private MainActivity context;
public MusicXmlParserAsynTask (MainActivity context){
this.context=context;
}
@Override
protected ArrayList<Music> doInBackground(String... params) {
// TODO Auto-generated method stub
publishProgress("正在连接服务端,获取entity对象");
try {
HttpEntity entity =HttpService.getEntity(params[0], null, HttpService.METHOD_GET);
Log.i("info", "entity="+entity);
if(entity!=null){
ArrayList<Music> musics =new MusicXmlparser().parse(entity.getContent());
Log.i("info", "musics.size()="+musics.size());
return musics;
}
} catch (Exception e) {
// TODO: handle exception

}
return null;
} @Override
protected void onPostExecute(ArrayList<Music> result) {
// TODO Auto-generated method stub

if(result!=null){
context.update(result);
}
super.onPostExecute(result);
} @Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
} @Override
protected void onProgressUpdate(String... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
}
HttpService类代码:package com.wm.service;import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
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.util.Log;public class HttpService {
public static final String BASE_URL = "http://192.168.1.100:8080/musiconline/";
public static final int METHOD_GET = 1;
public static final int METHOD_POST = 2; public static HttpEntity getEntity(String url,
ArrayList<BasicNameValuePair> params, int method)
throws IOException {
HttpEntity entity = null;
HttpClient client = new DefaultHttpClient();
HttpUriRequest request = null;
switch (method) {
case METHOD_GET:
StringBuilder sb = new StringBuilder(url);
if (params != null) {
sb.append('?');
for (BasicNameValuePair pair : params) {
sb.append(pair.getName()).append('=').append(
pair.getValue()).append('&');
}
sb.deleteCharAt(sb.length() - 1);
}
request = new HttpGet(sb.toString());
Log.i("info", request+"");
break; case METHOD_POST:
request = new HttpPost(url);
((HttpPost) request).setEntity(new UrlEncodedFormEntity(params));
break;
}
HttpResponse response = client.execute(request);
Log.i("info", response+"");
Log.i("info", client+"");
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
entity = response.getEntity();
Log.i("info", entity+"");
}
return entity;
}
}