我正在尝试在 android 中编写一个 Http API。我正在使用 AsyncTask 运行对我的 Web 服务的调用。我对更新 UI 不感兴趣,而我想要的只是在我的应用程序逻辑中使用的数据。这是我到目前为止所拥有的:
public class DataManager{
public static String result;
public DataManager ()
{
}
public String get ()
{
User user = new User ();
user.execute("http://someuri/service/users/id/21001");
return user.getResult();
}
}
public class User extends AsyncTask <String,Void,String>{
private String result;
@Override
protected String doInBackground(String... arg0)
{
HttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet (arg0[0]);
try
{
HttpResponse response = client.execute (get);
if (response.getStatusLine().getStatusCode () == 200)
{
HttpEntity entity = response.getEntity();
return EntityUtils.toString(entity);
}
}
catch (ClientProtocolException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
this.result = result;
}
public String getResult ()
{
return result;
}
}
我想要一个典型的电话是:
DataManager manager = new DataManager ();
String value = manager.get ();
但是当我运行它时,我会返回 null。是什么导致了这种情况以及如何重构此代码以获得所需的行为。