java实现http请求发送application/x-www-form-urlencoded数据
时间: 2023-07-29 16:15:04 浏览: 133
可以使用Java中的HttpURLConnection类来发送HTTP请求,并且设置请求头和请求体。以下是一个示例代码:
```java
import java.io.*;
import java.net.*;
public class HttpPost {
public static void main(String[] args) throws Exception {
String url = "http://example.com/api"; // 请求的URL地址
String data = "param1=value1¶m2=value2"; // 请求的参数数据
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// 设置请求方法为POST
con.setRequestMethod("POST");
// 设置请求头
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("User-Agent", "Mozilla/5.0");
// 向请求体中写入数据
con.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(con.getOutputStream());
writer.write(data);
writer.flush();
// 发送请求并获取响应
int responseCode = con.getResponseCode();
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 Code : " + responseCode);
System.out.println("Response Data : " + response.toString());
}
}
```
其中,`url`是要请求的URL地址,`data`是请求的参数数据。在设置请求头时,需要设置`Content-Type`为`application/x-www-form-urlencoded`,表示请求体中的数据使用`key=value`的形式进行编码。在向请求体中写入数据时,需要设置`DoOutput`为`true`,表示可以向请求体中写入数据。最后,使用`getResponseCode()`方法获取响应的状态码,使用`getInputStream()`方法获取响应的输入流,并将响应数据读取出来。
阅读全文