帮忙写段Java代码,请求一个post接口,地址为http://59.211.219.71/share/token,传参方式为application/x-www-form-urlencoded要传三个参数,要填写host才能请求
时间: 2023-08-31 16:36:35 浏览: 78
### 回答1:
以下是一个示例的Java代码,可以帮助您请求指定的POST接口:
```
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
public class PostRequestExample {
public static void main(String[] args) throws Exception {
// 定义请求参数
String url = "http://59.211.219.71/share/token";
String host = "your_host";
String param1 = "your_param1";
String param2 = "your_param2";
// 创建连接
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
// 添加请求头
con.setRequestMethod("POST");
con.setRequestProperty("Host", host);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 设置POST参数
String urlParameters = "param1=" + param1 + "¶m2=" + param2;
// 发送POST请求
con.setDoOutput(true);
DataOutputStream wr = new DataOutputStream(con.getOutputStream());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
// 读取响应
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream(), StandardCharsets.UTF_8));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 输出响应结果
System.out.println(response.toString());
}
}
```
您只需要将`your_host`、`your_param1`和`your_param2`替换成实际的值即可。另外请注意,此代码需要使用`java.net`和`java.io`两个包,如果您使用的是Maven或Gradle等构建工具,可以添加相应的依赖。
### 回答2:
以下是使用Java语言编写的代码段,以请求一个Post接口,传参方式为application/x-www-form-urlencoded,需要填写host参数进行请求:
```java
import java.io.*;
import java.net.*;
public class PostRequestExample {
public static void main(String[] args) {
try {
// 请求参数
String urlParameters = "param1=value1¶m2=value2¶m3=value3";
// API接口地址
String apiUrl = "http://59.211.219.71/share/token";
// 填写host参数
String host = "example.com";
// 创建URL对象,并传入API接口地址
URL url = new URL(apiUrl);
// 打开连接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置请求方法为POST
conn.setRequestMethod("POST");
// 设置请求头信息
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Host", host);
// 启用输出流,用于发送数据
conn.setDoOutput(true);
// 获取输出流对象
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
// 发送请求参数
writer.write(urlParameters);
writer.flush();
// 获取响应码
int responseCode = conn.getResponseCode();
// 读取响应内容
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 输出响应结果
System.out.println("Response Code : " + responseCode);
System.out.println("Response : " + response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这段代码通过`java.net.HttpURLConnection`发送POST请求到指定的接口地址,并设置请求头信息中的`Host`参数。其中`param1=value1¶m2=value2¶m3=value3`是请求参数,可根据实际需求进行修改。执行后会输出响应码和响应结果。
### 回答3:
下面是一个使用Java代码请求post接口的示例:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class PostRequestExample {
public static void main(String[] args) {
try {
// 请求的URL地址
String url = "http://59.211.219.71/share/token";
// 构建请求参数
String params = "param1=" + URLEncoder.encode("value1", "UTF-8");
params += "¶m2=" + URLEncoder.encode("value2", "UTF-8");
params += "¶m3=" + URLEncoder.encode("value3", "UTF-8");
// 创建连接
URL requestUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) requestUrl.openConnection();
// 设置请求方法为POST
connection.setRequestMethod("POST");
// 设置请求头信息
connection.setRequestProperty("host", "填写host");
// 允许输出流写入数据
connection.setDoOutput(true);
// 写入请求参数
OutputStream outputStream = connection.getOutputStream();
outputStream.write(params.getBytes("UTF-8"));
outputStream.flush();
outputStream.close();
// 发送请求并获取响应
int responseCode = connection.getResponseCode();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
// 输出响应结果
System.out.println("Response Code: " + responseCode);
System.out.println("Response: " + response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在示例代码中,我们首先指定了请求的URL地址为`http://59.211.219.71/share/token`,然后根据要求传入了三个参数:param1、param2、param3,并使用`URLEncoder.encode`方法对参数值进行了URL编码。
在创建连接之后,我们设置了请求方法为POST,并设置了请求头信息中的host字段,然后设置了允许输出流写入数据。
接下来,我们通过输出流将请求参数写入到连接中,发送请求,并获取到了响应相关的信息。
最后,我们打印出了响应的状态码和内容。
请注意,在运行代码之前,请将host参数替换为正确的值。