Http

来源:互联网 发布:动感影集制作软件 编辑:程序博客网 时间:2024/06/05 23:04

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;

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

public class MainActivity extends AppCompatActivity {

    private int code;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TextView textView = (TextView)findViewById(R.id.tv);
        textView.setText(code);

        //网络请求需要在线程中完成
        new Thread(new Runnable() {
            @Override
            public void run() {
                getData();
            }
        }).start();


    }

    /**
     * 实现请求网络数据的功能
     */
    public void getData(){

        try {
            //把一个网络资源地址  变成url对象
            String path = "http://10.1.2.116:8080/day2/hehe.txt";
            URL url =  new URL(path);
            //使用url打开网络连接
            HttpURLConnection conn =  (HttpURLConnection)url.openConnection();
            //使用连接对象设置一些请求参数
            conn.setConnectTimeout(5000);
            //读取服务器返回的数据超过5秒  报超时
            conn.setReadTimeout(5000);
            //获取服务器的返回码  如果=200 请求成功 否则失败
            code = conn.getResponseCode();
            Log.i("=======================", "code: " + code);
            if(code == 200){
                //如果成功了 从conn对象中获取网络传过来的数据流数据
                InputStream is = conn.getInputStream();
                //使用字节数组输出流把  输入流中的数据转成字符串
                ByteArrayOutputStream bos = new ByteArrayOutputStream();
                int len = -1;
                byte[] buff = new byte[1024];
                while((len = is.read(buff)) != -1){
                    bos.write(buff,0,len);
                }
                //自己创建的流需要自己关闭
//                is.close();
                bos.close();

                String data = new String(bos.toByteArray());
                Log.i("=======================", "getData: " + data);
//                Toast.makeText(MainActivity.this,data ,Toast.LENGTH_SHORT).show();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
原创粉丝点击