android http与json问题

weng4570 发布于 2013/11/06 18:01
阅读 305
收藏 0

红色区域是什么意思;怎么解释呀,并且为什么加一个get();

public ArrayList<Goods> getGoodsTypeByNet(String typeAndflag){

   ArrayList<Goods> list=null;
   try {
       MyTask mTask=new MyTask();
       String url=Constants.uri+"getGoodsByType";
       list=mTask.execute(url,typeAndflag).get();
       return list;
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
   return list;

}

还有下面这个怎么解释;没有看懂;谢谢

class MyTask extends AsyncTask<String, Integer,ArrayList<Goods>> {
   ArrayList<Goods> list=null;
   Gson gson=new Gson();
       @Override
    protected ArrayList<Goods> doInBackground(String... params) {
           try {
               HttpParams mParams=createHttpParams();
               HttpClient httpClient = new DefaultHttpClient(mParams);
               HttpPost httpPost = new HttpPost(params[0]);
               String message=AES.Encrypt(params[1],Constants.key);
               StringEntity se = new StringEntity(message,"UTF-8");
               httpPost.setEntity(se);
               HttpResponse httpResponse = httpClient.execute(httpPost);
               int httpCode = httpResponse.getStatusLine().getStatusCode();
               if(httpCode == HttpURLConnection.HTTP_OK&&httpResponse!=null){
                   DataInputStream dis=new DataInputStream(httpResponse.getEntity().getContent());
                   String msg=dis.readUTF().toString();
                   String jsonmsg=AES.Decrypt(msg,Constants.key);
                   list =gson.fromJson(jsonmsg,new TypeToken<ArrayList<Goods>>(){}.getType());
               }
           } catch (Exception e) {
               e.printStackTrace();
           }
        return list;
    }
}
/**
     * 设置网络超时;
     * @return
     */
    private  HttpParams createHttpParams() {
        final HttpParams params = new BasicHttpParams();
        HttpConnectionParams.setStaleCheckingEnabled(params, false);             
        HttpConnectionParams.setConnectionTimeout(params, Constants.timeout* 1000); //设置网络超时
        HttpConnectionParams.setSoTimeout(params, Constants.timeout * 1000);   //设置网络超时
        HttpConnectionParams.setSocketBufferSize(params, 8192 * 5);
        return params;
    }

加载中
0
weng4570
weng4570
顶;;;
0
xiangmao
xiangmao
get方法的文档: Waits if necessary for the computation to complete, and then retrieves its result. 参考:http://developer.android.com/reference/android/os/AsyncTask.html
返回顶部
顶部