Android 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="htt p://192.168.1.1:image"
        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);
// DataOutputStream is objectOutputStream的子类,也可以用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
            }
        }
 
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值