Httputils解析gson数据

来源:互联网 发布:淘宝商品标广告靠谱吗 编辑:程序博客网 时间:2024/06/05 19:04
首先得导入xUtils-2.6.14.jar包  根据情况pashbuild 
这里我用的是studio 直接导进去 编译
说明一下: 因为有些版本不支持Httpclient要在build.gradle里的 android 加入  
  
  useLibrary 'org.apache.http.legacy'
加权限 必须加入这两个权限才能 请求数据 
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />



import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import com.google.gson.Gson;import com.lidroid.xutils.HttpUtils;import com.lidroid.xutils.exception.HttpException;import com.lidroid.xutils.http.ResponseInfo;import com.lidroid.xutils.http.callback.RequestCallBack;import com.lidroid.xutils.http.client.HttpRequest;import java.util.ArrayList;import butterknife.ButterKnife;import butterknife.InjectView;public class MainActivity extends AppCompatActivity {    @InjectView(R.id.main_lv)    ListView mainLv;    private Bean bean;    private final static ArrayList<String> strings = new ArrayList<>();    //URL    private String path = "http://v.juhe.cn/weixin/query?key=e45a718a7614dcc811be83eb90598602";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ButterKnife.inject(this);        //调方法        httputils();    }    //httputils解析方法    public void httputils() {        HttpUtils httputils = new HttpUtils();        //配置当前Http缓存失效        httputils.configCurrentHttpCacheExpiry(0);      //send方法 里面有三个参数 第一个是请求方式 第二个是 url 地址 第三个是类型 一般为String        httputils.send(HttpRequest.HttpMethod.POST, path, new RequestCallBack<Object>() {            //一般继承两个方法 请求成功 和 请求失败            @Override            public void onSuccess(ResponseInfo<Object> responseInfo) {                String result = (String) responseInfo.result;                Gson gson = new Gson();                bean = gson.fromJson(result, Bean.class);                Toast.makeText(MainActivity.this, "解析成功", Toast.LENGTH_LONG).show();//添加到集合                for (int i = 0; i < bean.result.list.size(); i++) {                    strings.add(bean.result.list.get(i).getTitle());                }//                MyAdapter myAdapter = new MyAdapter();                mainLv.setAdapter(myAdapter);            }            //这个方法是请求失败            @Override            public void onFailure(HttpException error, String msg) {                Toast.makeText(MainActivity.this, "解析失败", Toast.LENGTH_LONG).show();            }        });    }    //适配器    public class MyAdapter extends BaseAdapter {        @Override        public int getCount() {            return strings.size();        }        @Override        public Object getItem(int i) {            return null;        }        @Override        public long getItemId(int i) {            return 0;        }        @Override        public View getView(int i, View view, ViewGroup viewGroup) {            view = View.inflate(MainActivity.this, R.layout.item, null);            ViewHolder viewHolder = new ViewHolder(view);            viewHolder.listItem.setText(strings.get(i));            return view;        }        class ViewHolder {            @InjectView(R.id.list_item)            TextView listItem;            ViewHolder(View view) {                ButterKnife.inject(this, view);            }        }    }}

0 0