在 Java 中,URL 中不能直接包含中文字符,因为 URL 规范要求 URL 必须是 ASCII 字符。如果需要在 URL 中传递中文参数,需要对中文参数进行 URL 编码,将其转换为浏览器中的参数形式。可以使用 java.net.URLEncoder
类来进行 URL 编码。文章来源地址https://www.toymoban.com/news/detail-669718.html
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class HttpGetWithEncodedChineseParametersExample {
public static void main(String[] args) {
try {
// 指定 GET 请求的 URL
String baseUrl = "https://jsonplaceholder.typicode.com/posts";
// 构建参数字符串,例如:?param1=value1¶m2=value2
String param1 = "中文参数1";
String param2 = "中文参数2";
//一个参数传参的示例(keyWord是参数)
String parameters = String.format("%s", URLEncoder.encode(keyWord, "UTF-8"));
String parameters = String.format("param1=%s¶m2=%s", URLEncoder.encode(param1, "UTF-8"), URLEncoder.encode(param2, "UTF-8"));
// 创建 URL 对象
URL obj = new URL(baseUrl + "?" + parameters);
// 打开连接
HttpURLConnection conn = (HttpURLConnection) obj.openConnection();
// 设置请求方法为 GET
conn.setRequestMethod("GET");
// 发送 GET 请求并获取响应
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("GET Response: " + response.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
文章来源:https://www.toymoban.com/news/detail-669718.html
到了这里,关于Java 发送Http请求携带中文参数时 请求报400的错误请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!