HttpUrlConnection

一。MainActivity


public class MainActivity extends FragmentActivity implements View.OnClickListener{

    private TextView t_page1,t_page2;
    private FrameLayout frameLayout;
    private Fragment01 fragment01;
    private Fragment02 fragment02;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化视图
        initview();
    }

    private void initview() {
        t_page1=findViewById(R.id.page1);
        t_page2=findViewById(R.id.page2);
        frameLayout=findViewById(R.id.framelayout);
        t_page1.setOnClickListener(this);
        t_page2.setOnClickListener(this);
        //创建Fragment 容器
        fragment01 = new Fragment01();
        fragment02 = new Fragment02();

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        transaction.replace(R.id.framelayout,fragment01);
        transaction.commit();
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.page1:
                FragmentManager fragmentManager1 = getSupportFragmentManager();
                FragmentTransaction transaction1 = fragmentManager1.beginTransaction();
                transaction1.replace(R.id.framelayout,fragment01);
                transaction1.commit();
                break;


            case R.id.page2:
                FragmentManager fragmentManager2 = getSupportFragmentManager();
                FragmentTransaction transaction2 = fragmentManager2.beginTransaction();
                transaction2.replace(R.id.framelayout,fragment02);
                transaction2.commit();
                break;
        }
    }
 

二。Fragment01

private String page1_url="http://api.iclient.ifeng.com/ClientNews?id=JS83,FOCUSJS83&action=defalult";
private static final String TAG = "Fragment01";

private ListView listview;
private MyHandler myHandler=new MyHandler();


@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment01, container, false);
   listview=view.findViewById(R.id.listview);
    return view;
}

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

    new Thread(){
        @Override
        public void run() {
            try {
                URL u =new URL(page1_url);
                HttpURLConnection connection= (HttpURLConnection) u.openConnection();
                connection.setConnectTimeout(5000);
                int code = connection.getResponseCode();
                if(code==200){
                    InputStream inputStream = connection.getInputStream();
                    String json = input(inputStream);
                    Log.d(TAG, "run: "+json);

                    Message message=myHandler.obtainMessage();
                    message.what=0;
                    message.obj=json;
                    myHandler.sendMessage(message);
                }
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }.start();

}

public String input(InputStream inputStream) throws IOException {
    int len=0;
    byte[] byt=new byte[1024];
    StringBuffer stringBuffer=new StringBuffer();
    while ((len=inputStream.read(byt))!=-1){
        String s= new String(byt,0,len);
        stringBuffer.append(s);
    }
    return stringBuffer.toString();
}


class MyHandler extends Handler{
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
           switch (msg.what){
               case 0:
                   //如果成功获取json 进行解析
                   String json= (String) msg.obj;
                   //获取gson
                    Gson gson=new Gson();
                   Type listtype = new TypeToken<LinkedList<Page1>>(){}.getType();
                   LinkedList<Page1> list= gson.fromJson(json, listtype);
                   List<Page1.ItemBean> item = list.get(0).getItem();

                   //创建适配器进行显示
                   MyBase base=new MyBase(getActivity(),item);
                   listview.setAdapter(base);
                   break;

               case 1:

                   break;
           }

    }
三,Fragment02


public class Fragment02 extends Fragment{
    private String page2_url="http://120.27.23.105/user/getDefaultAddr?uid=71";
    private static final String TAG = "Fragment02";
    private TextView text_name,text_add;


    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment02, container, false);

        text_name =view.findViewById(R.id.fragment02_name);
        text_add=view.findViewById(R.id.fragment02_add);
        return view;
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        //task请求网络
       new MyTask().execute(page2_url);
    }


    class MyTask extends AsyncTask<String,Void,String>{

        @Override
        protected String doInBackground(String... strings) {
       //取出第一个参数  接口地址
            String url=strings[0];
         //创建HttpClient
            HttpClient client=new DefaultHttpClient();
            //创建get请求方式
            HttpGet get=new HttpGet(url);
            try {
                HttpResponse response = client.execute(get);
                StatusLine statusLine = response.getStatusLine();
                int code = statusLine.getStatusCode();
                if(code==200){
                    HttpEntity entity = response.getEntity();
                    InputStream inputStream = entity.getContent();

                    //将流转成String 类型的
                    String json = input(inputStream);
                    Log.d(TAG, "doInBackground: "+json);

                    return json;
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
             Gson gson=new Gson();
            Page2 page2 = gson.fromJson(s, Page2.class);

            //赋值
            text_name.setText(page2.getData().getName());
            text_add.setText(page2.getData().getAddr());
        }
    }

    public String input (InputStream inputStream) throws IOException {
        int len=0;
        byte[] byt=new byte[1024];
        StringBuffer stringBuffer=new StringBuffer();
        while((len=inputStream.read(byt))!=-1){
            String s=new String(byt,0,len);
            stringBuffer.append(s);
        }
        return stringBuffer.toString();
    }



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值