📜  android httpurlconnection - Java (1)

📅  最后修改于: 2023-12-03 14:39:07.820000             🧑  作者: Mango

Android HttpURLConnection - Java

Android HttpURLConnection是用于在Android应用中发起HTTP网络请求的API。该API已经被广泛采用,并且替代了旧的Apache HttpClient API。在本文中,我们将探讨如何在Java中使用HttpURLConnection实现GET和POST请求,并解释相关概念。

建立HTTP连接

要建立与服务器的HTTP连接,我们需要使用Java中的HttpURLConnection对象。HttpURLConnection是Java中最基本的Http请求API之一,它非常容易使用,而且性能良好。

URL url = new URL("http://www.example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();

上面的代码创建了一个URL对象和一个HttpURLConnection对象,并打开了一个到服务器的连接。我们可以使用这个对象来设置请求方法、请求头、读取响应等。

GET请求

要发送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请求

要发送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时,请考虑以下概念:

  • URL - Uniform Resource Locator,服务器上资源的地址。
  • HttpURLConnection - Java中使用HTTP请求发送和接收数据的类。
  • 请求方法 - GET、POST等方法,在发起HTTP请求时使用。
  • 请求头 - 包含在请求中的HTTP头字段。
  • 响应码 - 服务器返回的HTTP状态码。
  • 响应头 - 包含在响应中的HTTP头字段。
  • 响应体 - 包含响应主体的HTTP响应。