java发送get请求带body请求体,代码示例
时间: 2023-07-10 09:30:57 浏览: 166
在Java中,HTTP GET请求是不支持请求体的,但是可以采用一些trick方法模拟GET请求带请求体的情况,比如在URL中传递参数、使用POST请求等方式。以下是使用POST请求来模拟GET请求带请求体的代码示例:
```java
import java.io.*;
import java.net.*;
public class Main {
public static void main(String[] args) throws Exception {
String url = "http://example.com/path/to/resource";
String body = "param1=value1¶m2=value2";
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// 添加请求头
con.setRequestMethod("POST");
con.setRequestProperty("User-Agent", "Mozilla/5.0");
con.setRequestProperty("Accept-Language", "en-US,en;q=0.5");
// 发送请求
con.setDoOutput(true);
OutputStream os = con.getOutputStream();
os.write(body.getBytes());
os.flush();
os.close();
// 获取响应结果
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());
}
}
```
在这个示例中,我们使用了HttpURLConnection来发送POST请求,并在请求体中传递参数。需要注意的是,我们在请求头中设置了User-Agent和Accept-Language等属性,这些属性是可选的,根据实际需要添加即可。同时,在发送请求时需要设置setDoOutput为true,否则请求体中的参数无法被发送。
阅读全文