Http
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();
}
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.