android 使用Java自带的HttpURLConnection 连接网络 读取返回数据

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

TextView textView = (TextView) findViewById(R.id.textView1);

String httpUri = "http://www.baidu.com";

String result = "";

URL url = null;

try {

url = new URL(httpUri);

} catch (MalformedURLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if (url != null) {

try {

// 使用HttpURLConnection打开连接

HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();

urlConn.setConnectTimeout(10000);// 10s内连不上就断开

// 因为这个是post请求,设立需要设置为true

// urlConn.setDoOutput(true);

// urlConn.setDoInput(true);

// 设置以POST方式

// urlConn.setRequestMethod("POST");

// Post 请求不能使用缓存

// urlConn.setUseCaches(false);

// urlConn.setInstanceFollowRedirects(true);

// 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的

// urlConn.setRequestProperty("Content-Type",

// "application/x-www-form-urlencoded");

// 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成,

// 要注意的是connection.getOutputStream会隐含的进行connect。

urlConn.connect();

// DataOutputStream流

OutputStream outputStream = urlConn.getOutputStream();// 向服务器写入

DataOutputStream out = new DataOutputStream(outputStream);

// DataOutputStreamisobjectOutputStream的子类,也可以用objectOutputStream类

// 要上传的参数

// String content = "name=gyf";

// 将要上传的内容写入流中

out.writeBytes(new String("name=gyf"));// 要是用objectOutputStream就是out.writeObject(content);//写入服务器的参数,但是放到内存中了

// content = "&wife=" + URLEncoder.encode("lyx", "gb2312");

// out.writeBytes(content);

// 刷新、关闭

out.flush();// 真正的写过去了

out.close();

// 获服务器取数据

InputStream inputStream = urlConn.getInputStream();

InputStreamReader inputStreamReader = new InputStreamReader(inputStream);

BufferedReader reader = new BufferedReader(inputStreamReader);// 读字符串用的。

String inputLine = null;

// 使用循环来读取获得的数据,把数据都村到result中了

while (((inputLine = reader.readLine()) != null)) {

// 我们在每一行后面加上一个"\n"来换行

result += inputLine + "\n";

}

reader.close();// 关闭输入流

// 关闭http连接

urlConn.disconnect();

// 设置显示取得的内容

if (result != null) {

textView.setText(result);

}

else {

textView.setText("读取的内容为NULL");

}

} catch (Exception e) {

// TODO: handle exception

}

}

}

http://www.myexception.cn/android/459752.html

更多相关文章

  1. [导入]Android平台上四种保存数据的方法
  2. Android客户端与云服务器进行网络通信
  3. Android 取出 图片以字节形式存放到数据库的数据,并将图片显示
  4. Android的关键的持久数据应该在onPause()方法中保存
  5. 【面试】Android Retrofit+Rxjava 如何实现同时请求多个接口数据
  6. android 建数据库 SQLite 存储sd 卡或者内存
  7. android集合SSH搭建服务器客户端请求
  8. Android中获取短信的内容
  9. Android应用程序组件Content Provider的共享数据更新通知机制分

随机推荐

  1. Android(安卓)XML 三种解析方式
  2. 超级助手公告
  3. android view(2) Activity、Window、Deco
  4. SystemUI编译遇到的问题
  5. 在Androd studio 中,TextView设置Text居然
  6. Android官方文档之App Resources(下)
  7. Android(安卓)ConstraintLayout 布局解析
  8. Android(安卓)Studio NDK开发入门
  9. Android(安卓)TabHost(简易用法)
  10. Android(安卓)面试