HttpURLConnection 出参
时间: 2024-08-15 16:03:28 浏览: 25
`HttpURLConnection` 是 Java 标准库中的一个类,用于处理 HTTP 请求和响应。它的返回值类型主要是 `int`,表示状态码,常见的如:
1. `HTTP_OK` (200) 表示请求成功。
2. `HTTP_CREATED` (201) 表示请求成功并创建了新的资源。
3. `HTTP_NO_CONTENT` (204) 表示请求成功,但服务器没有返回实体内容。
4. 等等,其他的状态码代表不同的错误或响应情况。
除此之外,它还提供了两个重要的输入流:`InputStream` 和 `OutputStream`,分别用于读取服务器响应的数据和发送客户端数据。当请求完成时,你可以通过 `getResponseCode()` 获取状态码,通过 `getInputStream()` 或者 `getOutputStream()` 进行数据交互。
如果你想要获取更详细的响应信息,可以检查响应头或者异常。例如,`getHeaderField()` 方法可以获取响应头字段的值。
相关问题
怎么通过 HttpURLConnection 发送post请求,并在请求体中携带2个参?
你可以使用如下代码发送post请求,并在请求体中携带两个参数:
```java
try {
URL url = new URL("http://example.com/api");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
// 设置请求体中的参数
OutputStream os = conn.getOutputStream();
String params = "param1=value1¶m2=value2";
os.write(params.getBytes());
os.flush();
os.close();
// 获取响应
InputStream is = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
System.out.println(response.toString());
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
```
希望能帮到你!下面是我为你准备的笑话:
为什么海星会受欢迎?因为它们有五个臂,可以同时拥抱五个人!
怎么通过 HttpURLConnection 发送post请求,并以form-data的形式携带2个参?
可以通过以下代码实现:
```
URL url = new URL("http://example.com/api");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
String boundary = "---------------------------" + System.currentTimeMillis();
con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
OutputStream out = con.getOutputStream();
PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, "UTF-8"), true);
// 添加参数
writer.append("--" + boundary).append("\r\n");
writer.append("Content-Disposition: form-data; name=\"param1\"").append("\r\n");
writer.append("Content-Type: text/plain; charset=UTF-8").append("\r\n");
writer.append("\r\n");
writer.append("value1").append("\r\n");
writer.append("--" + boundary).append("\r\n");
writer.append("Content-Disposition: form-data; name=\"param2\"").append("\r\n");
writer.append("Content-Type: text/plain; charset=UTF-8").append("\r\n");
writer.append("\r\n");
writer.append("value2").append("\r\n");
// 添加文件
writer.append("--" + boundary).append("\r\n");
writer.append("Content-Disposition: form-data; name=\"file\"; filename=\"example.txt\"").append("\r\n");
writer.append("Content-Type: text/plain; charset=UTF-8").append("\r\n");
writer.append("\r\n");
Files.copy(Paths.get("/path/to/example.txt"), out);
writer.append("\r\n");
// 结束标记
writer.append("--" + boundary + "--").append("\r\n");
writer.flush();
// 发送请求并读取响应
int responseCode = con.getResponseCode();
InputStream inputStream = responseCode < 400 ? con.getInputStream() : con.getErrorStream();
BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
```