HttpURLConnection的GET请求POST请求小总结

原文地址:https://blog.csdn.net/daisuki_ch/article/details/52651932
先搭建一个简单的服务器,具体方法见我另外一篇文章测试HttpUrlConnection请求时如何搭建一个简单的服务器

GET请求代码如下:

//网络请求是一个耗时操作,要在子线程里面开启  
        new Thread(new Runnable() {  
            @Override  
            public void run() {  
                try {  
                    //get请求的url  
                    URL url=new URL("http://192.168.2.135:8080/web/MyProject?username=zhangsan&password=123");  
                    //url写法:    协议://IP地址:端口号/访问的文件  
                    //协议一般是http,IP地址是要访问的IP地址,端口一般是8080,然后加上访问的是什么  
                    //新建一个HttpURLConnection,从url开启一个连接  
                    HttpURLConnection connection= (HttpURLConnection) url.openConnection();  
                    //设置请求的模式  
                    connection.setRequestMethod("GET");  
                    //设置请求连接超时时间  
                    connection.setConnectTimeout(5000);  
                    //设置访问时的超时时间  
                    connection.setReadTimeout(5000);  
                    //开启连接  
                    connection.connect();  
                    InputStream inputStream=null;  
                    BufferedReader reader=null;  
                    //如果应答码为200的时候,表示成功的请求带了,这里的HttpURLConnection.HTTP_OK就是200  
                    if(connection.getResponseCode()==HttpURLConnection.HTTP_OK){  
                        //获得连接的输入流  
                        inputStream=connection.getInputStream();  
                        //转换成一个加强型的buffered流  
                        reader=new BufferedReader(new InputStreamReader(inputStream));  
                        //把读到的内容赋值给result  
                        final String result=reader.readLine();  
                        //子线程不能更新UI线程的内容,要更新需要开启一个Ui线程,这里Toast要在Ui线程  
                        runOnUiThread(new Runnable() {  
                            @Override  
                            public void run() {  
                                Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT).show();  
                            }  
                        });  
                    }  
                    //关闭流和连接  
                    reader.close();  
                    inputStream.close();  
                    connection.disconnect();  
                } catch (MalformedURLException e) {  
                    e.printStackTrace();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  

            }  
        }).start();  

POST请求是看不到URL里面的头文件内容的,把头文件内容从连接的输出流中写入,这样相对于GET请求会比较安全些

//网络请求是一个耗时操作,要在子线程里面开启  
        new Thread(new Runnable() {  
            @Override  
            public void run() {  
                try {  
                    //get请求的url  
                    URL url=new URL("http://192.168.2.135:8080/web/MyProject");  
                    //url写法:    协议://IP地址:端口号/访问的文件  
                    //协议一般是http,IP地址是要访问的IP地址,端口一般是8080,然后加上访问的是什么  
                    //新建一个HttpURLConnection,从url开启一个连接  
                    HttpURLConnection connection= (HttpURLConnection) url.openConnection();  
                    //设置请求的模式  
                    connection.setRequestMethod("POST");  
                    //设置请求连接超时时间  
                    connection.setConnectTimeout(5000);  
                    //设置访问时的超时时间  
                    connection.setReadTimeout(5000);  
                    //设置连接允许写入  
                    connection.setDoOutput(true);  
                    //设置头文件内容  
                    String data="username=zhangsan&password=123";  
                    //获得连接的输出流  
                    OutputStream outputStream = connection.getOutputStream();  
                    //把头文件内容写入流中  
                    outputStream.write(data.getBytes());  
                    //开启连接  
                    connection.connect();  
                    InputStream inputStream=null;  
                    BufferedReader reader=null;  
                    //如果应答码为200的时候,表示成功的请求带了,这里的HttpURLConnection.HTTP_OK就是200  
                    if(connection.getResponseCode()==HttpURLConnection.HTTP_OK){  
                        //获得连接的输入流  
                        inputStream=connection.getInputStream();  
                        //转换成一个加强型的buffered流  
                        reader=new BufferedReader(new InputStreamReader(inputStream));  
                        //把读到的内容赋值给result  
                        final String result=reader.readLine();  
                        //子线程不能更新UI线程的内容,要更新需要开启一个Ui线程,这里Toast要在Ui线程  
                        runOnUiThread(new Runnable() {  
                            @Override  
                            public void run() {  
                                Toast.makeText(MainActivity.this,result,Toast.LENGTH_SHORT).show();  
                            }  
                        });  
                    }  
                    //关闭流和连接  
                    reader.close();  
                    inputStream.close();  
                    connection.disconnect();  
                } catch (MalformedURLException e) {  
                    e.printStackTrace();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  

            }  
        }).start();  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值