安卓GET/POST请求实现与权限管理

5星 · 超过95%的资源 需积分: 9 10 下载量 133 浏览量 更新于2024-09-14 收藏 3KB TXT 举报
在Android开发中,GET和POST方法是网络通信的基础,用于向服务器发送请求并接收响应。本文将详细介绍如何在Android应用中实现GET和POST请求,特别是通过使用`HttpURLConnection`类进行操作。 首先,确保您的应用程序具有访问互联网的权限。在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` 这将允许您的应用连接到网络资源。 对于GET请求,主要步骤如下: 1. 创建一个`URL`对象来指定目标地址: ```java URL url = new URL("http://www.sohu.com"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(5 * 1000); // 设置连接超时时间(单位:毫秒) conn.setRequestMethod("GET"); // 设置请求方法为GET if (conn.getResponseCode() != 200) throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode()); ``` 2. 获取HTTP响应,通常通过输入流读取数据: ```java InputStream is = conn.getInputStream(); String result = readData(is, "GET"); // 读取数据并关闭流 conn.disconnect(); ``` GET请求通常用于获取静态资源,参数作为查询字符串附加在URL后面,如 `http://xxxx/xxx.action?name=tom&age=12`。 对于POST请求,需要构造请求体和头部信息: 1. 同样创建`URL`对象,但可能需要构建POST请求: ```java URL realUrl = new URL(requestUrl); HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection(); conn.setRequestMethod("POST"); conn.setConnectTimeout(5000); // 设置POST请求的连接超时时间 ``` 2. 设置POST数据(如果有的话): ```java // 假设你有一个HashMap或字节数组作为POST数据 String postData = buildPostData(); // 构造POST数据 byte[] postDataBytes = postData.getBytes("UTF-8"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setDoOutput(true); // 设置允许输出数据 DataOutputStream wr = new DataOutputStream(conn.getOutputStream()); wr.write(postDataBytes); wr.flush(); wr.close(); ``` 3. 检查响应并读取结果: ```java if (conn.getResponseCode() == 200) { String result = readAsString(conn.getInputStream(), "UTF-8"); outStream.close(); System.out.println(result); } ``` GET请求不需要提交数据,而POST请求则需要提供数据并在连接后发送。GET请求适合传输小量数据,而POST请求适合传输大量数据或者需要保密的数据。了解这两种基本的网络请求方式,能帮助您更好地管理Android应用中的网络交互。