package com.lianxi.feihu.day2http;
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();
}
}
}