封装网络请求数据

package bw.com.ak.network;

import android.content.Context;
import android.util.Log;

import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpUrlUtils {
    //请求获取网络请求
      public  static   String  getHttpCon(Context mContext,String mPath,String mRam){
          String messages = "";
          try {
                   URL murl = new URL(mPath);
                  Log.i("shop", "doInBackground: " + mPath);
                  HttpURLConnection connection = (HttpURLConnection) murl.openConnection();
                  //设置请求发送
                  connection.setRequestMethod(mRam);
                  //请求超时
                  connection.setConnectTimeout(5 * 1000);
                  connection.setReadTimeout(5 * 1000);
                  //数据流处理
                  if (connection.getResponseCode() == 200) {
                      //获取输入流
                      InputStream inputStream = connection.getInputStream();
                      //读取输入流
                      byte[] b = new byte[1024 * 512]; //定义一个byte数组读取输入流
                      ByteArrayOutputStream baos = new ByteArrayOutputStream(); //定义缓存流来保存输入流的数据
                      int len = 0;
                      while ((len = inputStream.read(b)) > -1) {  //每次读的len>-1 说明是是有数据的
                          baos.write(b, 0, len);  //三个参数  输入流byte数组   读取起始位置  读取终止位置
                      }
                      messages = baos.toString();
                      inputStream.close();
                      connection.disconnect();
                  }
              } catch(Exception e){
                  e.printStackTrace();
              }
          return messages;
       }
}

调用网络请求方法

package bw.com.ak.view;

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.TextView;
import android.widget.Toast;

import com.google.gson.Gson;

import bw.com.ak.R;
import bw.com.ak.adapter.ShopAdapte;
import bw.com.ak.adapter.ShopBean;
import bw.com.ak.network.HttpUrlUtils;
import bw.com.ak.network.NetWorkUtils;
import bw.com.ak.view.xlistview.XListView;

public class MainFragment extends Fragment {

    private XListView listView;
    private ShopAdapte myAdapte;
    private View mView;
    private String mnr;

    public static Fragment getinstance(String title){
        //创建Fragment1
        MainFragment fragment1 = new MainFragment();
        //创建bundle
        Bundle bundle = new Bundle();
        //添加值
        bundle.putString("title",title);
        //把值添加到Arguments中
        fragment1.setArguments(bundle);
        return fragment1;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
      ///获取Arguments
        Bundle arguments = getArguments();
        //获取值
        String title = arguments.getString("title");
        //创建textview
        TextView textView = new TextView(getActivity());
        //设置值
        textView.setText("1608c"+title);
       //获取view绑定数据


        if(mView==null){
            mView= inflater.inflate(R.layout.mainfr_layout, container, false);

            listView = mView.findViewById(R.id.mf_xlv);
            //获取数据
            switch (title){
                case "头条":
                    mnr="tt";
                    getDate();
                    break;
                case "社会":
                    mnr="shehui";
                    getDate();
                    break;
                case "国内":
                    mnr="gn";
                    getDate();
                    break;
            }
             listView.setAdapter(myAdapte);
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    Intent intent = new Intent(getActivity(), DilActivity.class);
                    startActivity(intent);

                }
            });
        }
                return mView;
    }
    //获取数据
    private  void   getDate(){
        if(NetWorkUtils.getNet(getActivity())) {

           new MyAsyn().execute();
           // String mPath="http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri=tt";
          //  myAdapte = new ShopAdapte(getActivity());
            //new MyTask(getActivity(),mPath,"GET").execute();
            Toast.makeText(getActivity(),"网络已连接",Toast.LENGTH_LONG).show();
        }else {
            Toast.makeText(getActivity(),"亲!请检查网络",Toast.LENGTH_LONG).show();
        }
    }
    //获取数据
    class  MyAsyn extends AsyncTask<Integer,Integer,String> {
        public   String mPath="http://result.eolinker.com/k2BaduF2a6caa275f395919a66ab1dfe4b584cc60685573?uri="+mnr+"";
        //耗时的操作
        @Override
        protected String doInBackground(Integer... integers) {
            return  HttpUrlUtils.getHttpCon(getActivity(),mPath,"GET");
        }
        //当后台操作结束时,此方法将会被调用,计算结果将做为参数传递到此方法中,直接将结果显示到UI组件上
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            if (s != null) {
                Gson gson = new Gson();
                ShopBean focusBean = gson.fromJson(s,ShopBean.class);
                ShopBean.ResultBean resultBean ;
                resultBean = focusBean.getResult();
                if (resultBean != null) {
                    myAdapte = new ShopAdapte(getActivity(),resultBean);
                    listView.setAdapter(myAdapte);
                }
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值