初识HttpUrlConnection

简单的网络基础应用

get请求与post请求的区别

HttpURLConnection是java的标准类,可发送get请求和post请求,这里说下几大区别:

GET请求是从服务器上获取数据,POST请求是向服务器传送数据。

GET的请求参数放在URL链接中,POST的请求参数放在body中。

GET的URL会有长度上的限制,则POST的数据则可以非常大。

POST比GET安全,因为数据在地址栏上不可见。

HttpUrlConnection请求网络数据实例

我们来简单的做一个请求网络数据的实例,首先,我们定义一个按钮,通过点击按钮发送请求

<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="访问网络"
        android:id="@+id/btn_main"/>

我会将每一步的步骤较为详细的写到代码中

try {
            //创建URL地址对象
            URL url = new URL("https://www.baidu.com/");
            //创建Connection对象
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            //创建输入流对象
            InputStream inputStream = connection.getInputStream();
            //创建Reader对象
            InputStreamReader reader = new InputStreamReader(inputStream);
            //创建BufferedReader对象
            BufferedReader bufferReader = new BufferedReader(reader);
            //开始读取
            String temp = "";
            StringBuffer stringBuffer = new StringBuffer();
            while ((temp = bufferReader.readLine()) != null) {
                stringBuffer.append(temp);
                Log.e(stringBuffer.toString(),"大笨妞");
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

通过这段代码简单的请求网络数据,这里要注意,网络请求是一个耗时操作,所以不能写到主线程中,我们通过子线程来调用

new Thread(new Runnable() {
                    @Override
                    public void run() {
                        getWeb();

                    }
                }).start();

这里写图片描述
我们这里访问了百度网址,可以看到,我们打印了一大串东西,这就是访问的百度数据

HttpUrlConnection加载网络图片实例

这里我们就基于上面的代码来访问网络上的图片,并将图片显示出来

try {

            URL url=new URL("http://img4.duitang.com/uploads/item/201209/14/20120914194440_vJwWL.thumb.700_0.jpeg");
            HttpURLConnection connection= (HttpURLConnection) url.openConnection();
            InputStream inputDtream=connection.getInputStream();
            Bitmap bitmap= BitmapFactory.decodeStream(inputDtream);
            Message message=handler.obtainMessage();
            message.obj=bitmap;
            handler.sendMessage(message);

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

在布局中添加一个ImageView标签

`
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/img_main"/>

url中写的是我从网络复制的一张图片地址,让我们来看看效果
`这里写图片描述
这里要注意,同样是放在子线程中调用

String/StringBuffer/StringBuilder的区别

String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值