如何进行接口拼接

//1.获取首接口部分

private void resssd(){
    try {
        URL url=new  URL("http://120.27.23.105/product/getCatagory");
        HttpURLConnection connection= (HttpURLConnection) url.openConnection();
        if (connection.getResponseCode()==200){
            InputStream inputStream = connection.getInputStream();

            String data = streamToString(inputStream);

            //进行解析
            Gson gson=new Gson();
            Data resultData = gson.fromJson(data, Data.class);

            //2.创建handler对象,发消息给主线程
            Message msg=Message.obtain();
            msg.obj=resultData;
            handler.sendMessage(msg);

        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}
//每个条目对应的数据的接口
 
 
class MyTask extends AsyncTask<String,Void,String>{
    @Override
    protected String doInBackground(String... strings) {
        HttpClient httpClient=new DefaultHttpClient();
        HttpGet httpGet=new HttpGet(strings[0]);
        try {
            HttpResponse response=httpClient.execute(httpGet);
            if (response.getStatusLine().getStatusCode()==200){
                HttpEntity entity=response.getEntity();
                String s= EntityUtils.toString(entity);
                return s;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        if (s!=null){
            Gson gson=new Gson();
            Bean2 bean2 = gson.fromJson(s, Bean2.class);
            list = bean2.getData();
            MyAdapter2 myAdapter=new MyAdapter2();
            lw1.setAdapter(myAdapter);
        }
    }
}
//每个接口的适配器
//适配器一
class MyAdapter extends BaseAdapter{

    @Override
    public int getCount() {
        return data1.size();
    }

    @Override
    public Object getItem(int i) {
        return data1.get(i);
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        if (view==null){
            view=View.inflate(MainActivity.this,R.layout.item,null);
        }
        TextView tw = view.findViewById(R.id.tw1);
        tw.setText(data1.get(i).getName());
        ImageView iw = view.findViewById(R.id.iw);
        Myimage m=new Myimage(iw);
        m.execute(data1.get(i).getIcon());
        return view;
    }
    class Myimage extends AsyncTask<String, Void, Bitmap> {
        private ImageView imageView;
        public Myimage(ImageView imageView){
            this.imageView=imageView;
        }
        @Override
        protected Bitmap doInBackground(String... strings) {
            try {
                URL url=new URL(strings[0]);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

                urlConnection.setRequestMethod("GET");
                urlConnection.setConnectTimeout(5000);
                urlConnection.setReadTimeout(5000);

                int code=urlConnection.getResponseCode();


                if(code==200){
                    InputStream inputStream = urlConnection.getInputStream();

                    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                    return  bitmap;


                }
            }catch (Exception e){
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);
            if (bitmap==null){
                imageView.setImageResource(R.mipmap.ic_launcher);
            }else {
                imageView.setImageBitmap(bitmap);
            }
        }
    }
}
//适配器二
class MyAdapter2 extends BaseAdapter{

    @Override
    public int getCount() {
        return list.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) {
        if (view==null){
            view=View.inflate(MainActivity.this,R.layout.item2,null);
        }
        TextView tw = view.findViewById(R.id.tw2);
        tw.setText(list.get(i).getName());
        ImageView iw = view.findViewById(R.id.iw1);
        Myimage1 m=new Myimage1(iw);
        m.execute(list.get(i).getList().get(0).getIcon());
        return view;
    }
    class Myimage1 extends AsyncTask<String, Void, Bitmap> {
        private ImageView imageView;
        public Myimage1(ImageView imageView){
            this.imageView=imageView;
        }
        @Override
        protected Bitmap doInBackground(String... strings) {
            try {
                URL url=new URL(strings[0]);
                HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

                urlConnection.setRequestMethod("GET");
                urlConnection.setConnectTimeout(5000);
                urlConnection.setReadTimeout(5000);

                int code=urlConnection.getResponseCode();


                if(code==200){
                    InputStream inputStream = urlConnection.getInputStream();

                    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
                    return  bitmap;


                }
            }catch (Exception e){
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Bitmap bitmap) {
            super.onPostExecute(bitmap);
            if (bitmap==null){
                imageView.setImageResource(R.mipmap.ic_launcher);
            }else {
                imageView.setImageBitmap(bitmap);
            }
        }
    }
}
//调用外部类
private Handler handler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        Data data= (Data) msg.obj;
        data1 = data.getData();
        MyAdapter adapter=new MyAdapter();
        lw.setAdapter(adapter);
    }
};

private DrawerLayout drawerLayout;
private LinearLayout linmenu;
private ListView lw;
private List<Data.DataBean> data1;
private ListView lw1;
private List<Bean2.DataBean> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    drawerLayout = findViewById(R.id.mydrawer);
    linmenu = findViewById(R.id.lin_menu);
    lw = findViewById(R.id.lw);
    Button open = findViewById(R.id.btn_open);
    open.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            drawerLayout.openDrawer(linmenu);
        }
    });
    new Thread(){
        @Override
        public void run() {
            super.run();
            resssd();
        }
    }.start();
    lw1 = findViewById(R.id.lw1);
    lw.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            int cid = data1.get(i).getCid();
            //Toast.makeText(MainActivity.this,"111",Toast.LENGTH_SHORT).show();
            MyTask myTask=new MyTask();
            myTask.execute("http://120.27.23.105/product/getProductCatagory?cid="+cid);
        }
    });


}
我的第一个接口使用线程用Handel获取的,所以有些繁琐,记住想用第二个接口得到第一个接口传输的数据必须获得第一个接口传过来的ID:( int cid = data1 .get(i).getCid();



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值