用Java写一个转发http 请求的方法可以支持 路径传参,body传参
时间: 2024-05-19 15:15:45 浏览: 16
可以使用Java的HttpURLConnection类来实现转发HTTP请求。以下是一个示例方法,它支持路径传参和body传参:
```java
import java.io.*;
import java.net.*;
public class HttpForwarder {
public static void forward(String urlStr, String method, String pathParams, String bodyParams) throws IOException {
// 创建URL对象
URL url = new URL(urlStr + pathParams);
// 打开连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod(method);
conn.setDoOutput(true);
conn.setDoInput(true);
// 设置请求body参数
if (bodyParams != null) {
OutputStream os = conn.getOutputStream();
os.write(bodyParams.getBytes());
os.flush();
os.close();
}
// 获取响应
InputStream is;
if (conn.getResponseCode() < HttpURLConnection.HTTP_BAD_REQUEST) {
is = conn.getInputStream();
} else {
is = conn.getErrorStream();
}
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
conn.disconnect();
}
}
```
使用示例:
```java
HttpForwarder.forward("http://example.com/users/", "POST", "123", "{\"name\":\"John\",\"age\":30}");
```
这将转发一个POST请求到http://example.com/users/123,并将请求body设置为{"name":"John","age":30}。