Android 网络请求

来源:互联网 发布:usb端口禁用破解 编辑:程序博客网 时间:2024/06/15 15:53
 new Thread(){                    @Override                    public void run()                    {                        //把网络访问的代码放在这里                        requestGet(null);                    }                }.start();

1、Get请求

 private void requestGet(HashMap<String, String> paramsMap) {        try {            String baseUrl = "http://7xtgbo.com1.z0.glb.clouddn.com/todayTask.html";            StringBuilder tempParams = new StringBuilder();            String requestUrl = baseUrl;            // 新建一个URL对象            URL url = new URL(requestUrl);            // 打开一个HttpURLConnection连接            HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();            // 设置连接主机超时时间            urlConn.setConnectTimeout(5 * 1000);            //设置从主机读取数据超时            urlConn.setReadTimeout(5 * 1000);            // 设置是否使用缓存  默认是true            urlConn.setUseCaches(true);            // 设置为Post请求            urlConn.setRequestMethod("GET");            //urlConn设置请求头信息            //设置请求中的媒体类型信息。            urlConn.setRequestProperty("Content-Type", "application/json");            //设置客户端与服务连接类型            urlConn.addRequestProperty("Connection", "Keep-Alive");            // 开始连接            urlConn.connect();            // 判断请求是否成功            if (urlConn.getResponseCode() == 200) {                // 获取返回的数据                String result = streamToString(urlConn.getInputStream());                Log.e(TAG, "Get方式请求成功,result--->" + result);            } else {                Log.e(TAG, "Get方式请求失败");            }            // 关闭连接            urlConn.disconnect();        } catch (Exception e) {            Log.e(TAG, e.toString());        }    }

2、Post请求

 private void requestPost(HashMap<String, String> paramsMap) {        try {            String baseUrl = "http://www.upaipai.cn/api/v1/login";            //合成参数            StringBuilder tempParams = new StringBuilder();            int pos = 0;            for (String key : paramsMap.keySet()) {                if (pos > 0) {                    tempParams.append("&");                }                tempParams.append(String.format("%s=%s", key,  URLEncoder.encode(paramsMap.get(key),"utf-8")));                pos++;            }            String params =tempParams.toString();            // 请求的参数转换为byte数组            byte[] postData = params.getBytes();            // 新建一个URL对象            URL url = new URL(baseUrl);            // 打开一个HttpURLConnection连接            HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();            // 设置连接超时时间            urlConn.setConnectTimeout(5 * 1000);            //设置从主机读取数据超时            urlConn.setReadTimeout(5 * 1000);            // Post请求必须设置允许输出 默认false            urlConn.setDoOutput(true);            //设置请求允许输入 默认是true            urlConn.setDoInput(true);            // Post请求不能使用缓存            urlConn.setUseCaches(false);            // 设置为Post请求            urlConn.setRequestMethod("POST");            //设置本次连接是否自动处理重定向            urlConn.setInstanceFollowRedirects(true);            // 配置请求Content-Type            urlConn.setRequestProperty("Content-Type", "application/json");            // 开始连接            urlConn.connect();            // 发送请求参数            DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream());            dos.write(postData);            dos.flush();            dos.close();            // 判断请求是否成功            if (urlConn.getResponseCode() == 200) {                // 获取返回的数据                String result = streamToString(urlConn.getInputStream());                Log.e(TAG, "Post方式请求成功,result--->" + result);                Intent intent = new Intent(Login.this, MainActivity.class);                startActivity(intent);            } else {                Log.e(TAG, "Post方式请求失败");            }            // 关闭连接            urlConn.disconnect();        } catch (Exception e) {            Log.e(TAG, e.toString());            Log.e(TAG, "Post方式请求异常");        }    }

3、将输入流转换成字符串

    public String streamToString(InputStream is) {        try {            ByteArrayOutputStream baos = new ByteArrayOutputStream();            byte[] buffer = new byte[1024];            int len = 0;            while ((len = is.read(buffer)) != -1) {                baos.write(buffer, 0, len);            }            baos.close();            is.close();            byte[] byteArray = baos.toByteArray();            return new String(byteArray);        } catch (Exception e) {            Log.e(TAG, e.toString());            return null;        }    }
0 0
原创粉丝点击