httpurlconnection post传参发送并解析请求返回的结果 代码详细解释
时间: 2023-12-10 22:38:19 浏览: 34
好的,下面是使用HttpURLConnection进行POST请求,并解析返回结果的Java代码,附有详细解释:
```java
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class PostRequest {
public static void main(String[] args) {
try {
// 要发送的POST请求的URL
String url = "http://localhost:8080/example";
// 设置请求参数
String param = "name=" + URLEncoder.encode("张三", "UTF-8") +
"&age=" + URLEncoder.encode("18", "UTF-8");
// 创建URL对象
URL obj = new URL(url);
// 创建HttpURLConnection对象
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// 设置请求方法为POST
con.setRequestMethod("POST");
// 设置请求头信息
con.setRequestProperty("User-Agent", "Mozilla/5.0");
// 设置请求参数类型为表单格式
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 启用输出流,因为POST请求需要向服务器发送数据
con.setDoOutput(true);
// 将请求参数写入输出流
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(param);
wr.flush();
wr.close();
// 获取服务器响应的状态码
int responseCode = con.getResponseCode();
// 打印响应状态码
System.out.println("Response Code : " + responseCode);
// 读取服务器的响应结果
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 打印服务器响应结果
System.out.println(response.toString());
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
```
代码解释:
1. 在第7行,我们定义了要发送POST请求的URL。这里使用了本地服务器地址,实际应用中需要替换成实际的URL。
2. 在第10-12行,我们设置了请求参数。这里只有两个参数:name和age,实际应用中可能需要更多的参数,可以根据实际需求进行修改。
3. 在第15行,我们创建了一个URL对象,用于连接到指定的URL。
4. 在第18行,我们创建了一个HttpURLConnection对象,用于发送POST请求。
5. 在第21-22行,我们设置了请求方法为POST,并添加了一个User-Agent头信息,模拟浏览器请求。
6. 在第25行,我们设置了请求参数类型为表单格式。
7. 在第28行,我们启用了输出流,因为POST请求需要向服务器发送数据。
8. 在第31-33行,我们将请求参数写入输出流,然后关闭输出流。
9. 在第36行,我们获取了服务器响应的状态码,可以用来判断请求是否成功。
10. 在第39-43行,我们读取服务器的响应结果,使用了一个BufferedReader对象逐行读取响应内容,最后将响应内容保存在一个StringBuffer对象中。
11. 在第46行,我们打印了服务器响应结果。
12. 在异常处理块中,我们输出了异常信息,方便调试。
这就是使用HttpURLConnection进行POST请求,并解析返回结果的Java代码,希望对你有所帮助。