java中用post请求方式获取不到多个String类型的参数
在Java中使用POST请求方式获取多个String类型的参数,可以通过以下步骤实现:
- 创建一个HTTPURLConnection对象,并设置请求方式为POST:
URL url = new URL("http://www.example.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
- 构建请求参数,将参数按照key-value的形式进行拼接:
String param1 = "param1";
String param2 = "param2";
String param3 = "param3";
String urlParams = "param1=" + URLEncoder.encode(param1, "UTF-8") +
"¶m2=" + URLEncoder.encode(param2, "UTF-8") +
"¶m3=" + URLEncoder.encode(param3, "UTF-8");
- 将请求参数写入到输出流中:
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(urlParams);
writer.flush();
- 获取请求的响应结果:
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
完整的示例代码如下:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class PostRequestExample {
public static void main(String[] args) {
try {
URL url = new URL("http://www.example.com");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
String param1 = "param1";
String param2 = "param2";
String param3 = "param3";
String urlParams = "param1=" + URLEncoder.encode(param1, "UTF-8") +
"¶m2=" + URLEncoder.encode(param2, "UTF-8") +
"¶m3=" + URLEncoder.encode(param3, "UTF-8");
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
writer.write(urlParams);
writer.flush();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
writer.close();
System.out.println("Response: " + response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
请注意,上述示例中的URL和参数仅供参考,实际使用时需要根据自己的需求进行修改。同时,要确保服务端能够正确处理POST请求,并解析参数
原文地址: https://www.cveoy.top/t/topic/hMvJ 著作权归作者所有。请勿转载和采集!