📅  最后修改于: 2023-12-03 14:39:07.820000             🧑  作者: Mango
Android HttpURLConnection是用于在Android应用中发起HTTP网络请求的API。该API已经被广泛采用,并且替代了旧的Apache HttpClient API。在本文中,我们将探讨如何在Java中使用HttpURLConnection实现GET和POST请求,并解释相关概念。
要建立与服务器的HTTP连接,我们需要使用Java中的HttpURLConnection对象。HttpURLConnection是Java中最基本的Http请求API之一,它非常容易使用,而且性能良好。
URL url = new URL("http://www.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
上面的代码创建了一个URL对象和一个HttpURLConnection对象,并打开了一个到服务器的连接。我们可以使用这个对象来设置请求方法、请求头、读取响应等。
要发送GET请求,可以简单地设置请求方法为GET,并调用connect方法建立连接。
URL url = new URL("http://www.example.com/api/data");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
连接建立后,我们可以从服务器读取响应。可以使用以下代码读取服务器响应:
InputStream inputStream = connection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line);
}
bufferedReader.close();
String response = stringBuilder.toString();
上面的代码创建了一个InputStream对象,从返回的HTTP连接中获取输入流,并读取响应。最后,它将响应作为字符串返回。
要发送POST请求,可以使用setRequestMethod方法将请求方法设置为POST,并使用setDoOutput方法将输出流设置为true。
URL url = new URL("http://www.example.com/api/data");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.connect();
连接建立后,我们可以将POST数据写入输出流。可以使用以下代码将数据写入服务器:
OutputStream outputStream = connection.getOutputStream();
outputStream.write(data.getBytes(StandardCharsets.UTF_8));
outputStream.flush();
outputStream.close();
这里,我们首先获取输出流并将POST数据写入它。最后,我们刷新并关闭输出流。
如上所述,我们需要将数据转换为byte数组并写入输出流。这里,data是一个包含POST数据的字符串。
在使用HttpURLConnection时,请考虑以下概念: