Httputils解析gson数据

首先得导入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
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值