异步请求网络工具类封装

工具类
useLibrary ‘org.apache.http.legacy’

import android.os.AsyncTask;

import com.google.common.io.CharStreams;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import java.io.InputStream;
import java.io.InputStreamReader;

public class Gong extends AsyncTask<String,Void,String> {

public Gong(HttpData data){
    this.data = data;
};

@Override
protected String doInBackground(String... strings) {
    String url = strings[0];
    HttpClient httpClient = new DefaultHttpClient();
    HttpGet httpGet = new HttpGet(url);
    try {
        HttpResponse httpResponse = httpClient.execute(httpGet);
        StatusLine statusLine = httpResponse.getStatusLine();
        if(statusLine.getStatusCode() == 200){
            HttpEntity entity = httpResponse.getEntity();
            InputStream inputStream = entity.getContent();
            InputStreamReader reader = new InputStreamReader(inputStream);
            String s = CharStreams.toString(reader);
            return s;
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}

@Override
protected void onPostExecute(String s) {
    data.getName(s);
    super.onPostExecute(s);
}

private HttpData data;

public interface HttpData{
    void getName(String name);
}

}

//调用

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.bawei.xlistviewlibrary.XListView;
import com.bw.qgs.reverie.Gong;
import com.bw.qgs.reverie.R;
import com.bw.qgs.reverie.adapter.LAdapter;
import com.bw.qgs.reverie.bean.User;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

public class Fragment1 extends Fragment implements XListView.IXListViewListener {

private String path = "http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page=1&count=10";
private XListView xlistview;
private List<User.ResultBean> list;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_fragment1, container, false);
    xlistview = view.findViewById(R.id.xlistview);
    initData();
    xlistview.setXListViewListener(this);
    return view;
}

private void initData() {
    Gong gong = new Gong(new Gong.HttpData(){

        @Override
        public void getName(String name) {
            Gson gson = new Gson();
            User user = gson.fromJson(name, User.class);
            list = user.getResult();
            LAdapter adapter = new LAdapter(getActivity(),list);
            xlistview.setAdapter(adapter);
        }
    });
    gong.execute(path);
}

@Override
public void onRefresh() {

}

@Override
public void onLoadMore() {

}

}

猜你喜欢

转载自blog.csdn.net/weixin_42791904/article/details/83210473
今日推荐