首先得导入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);
}
}
}
}