Android URLConnection 使用教程:GET和POST请求

0 下载量 127 浏览量 更新于2024-08-29 收藏 52KB PDF 举报
本文主要介绍了如何在Android平台上使用URL Connection进行GET和POST数据操作,以获取服务器返回的数据。首先强调了在AndroidManifest.xml文件中添加必要的权限声明,包括访问网络和读写SD卡的权限。然后提供了一个名为GetPostUtil的工具类,包含了发送GET请求和POST请求的方法。 在Android应用中,为了能够通过网络获取数据,首先需要在AndroidManifest.xml文件中声明相应的权限。以下是声明网络访问和SD卡读写权限的代码: ```xml <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> ``` GetPostUtil工具类是实现HTTP请求的核心,它包含了两个静态方法:`sendGet()` 和 `sendPost()`。`sendGet()` 方法用于发送GET请求,而`sendPost()` 方法则用于发送POST请求。 在GET请求中,通常用于从服务器获取数据。`sendGet()` 方法如下: ```java public static String sendGet(String url) { String result = ""; URL realURL = null; URLConnection conn = null; BufferedReader bufReader = null; String line = ""; // 创建URL对象并打开连接 try { realURL = new URL(url); conn = realURL.openConnection(); // 读取服务器响应 bufReader = new BufferedReader(new InputStreamReader(conn.getInputStream())); while ((line = bufReader.readLine()) != null) { result += line; } } catch (MalformedURLException e) { // 处理URL格式错误 } catch (IOException e) { // 处理IO异常 } finally { // 关闭资源 if (bufReader != null) { try { bufReader.close(); } catch (IOException e) { // 忽略关闭时的异常 } } } return result; } ``` POST请求通常用于向服务器提交数据。`sendPost()` 方法的工作原理类似,但需要设置请求头并写入POST数据: ```java public static String sendPost(String url, String postData) { // ... // 设置请求方法为POST conn.setRequestMethod("POST"); // 写入POST数据 conn.setDoOutput(true); PrintWriter out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream())); out.print(postData); out.flush(); out.close(); // ... } ``` 这两个方法都返回服务器响应的数据,可以是JSON、XML或其他文本格式。在实际应用中,这些数据可能需要进一步解析以便处理和展示。 Android中的URL Connection提供了与服务器进行HTTP通信的能力。通过正确配置权限和调用相应的方法,可以实现GET和POST请求,获取服务器返回的数据。同时,需要注意处理可能出现的异常,并确保在操作完成后正确关闭资源。