How to solve KeyError: 400 Bad Request
How to solve KeyError: 400 Bad Request
我有一个服务器,我想在 Java 中以 json 的形式向其发送 post 请求。但是在发送之后,它给出了答案:“KeyError: 400 Bad Request: 浏览器(或代理)发送了该服务器无法理解的请求。”。无论我如何更改数据,它仍然会报错,并且发送的请求不会出现在服务器上。我该如何解决这个问题?
URL url = new URL("http://buldakovn.pythonanywhere.com/addStudent");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json; utf-8");
connection.setRequestProperty("Accept", "application/json");
connection.setDoOutput(true);
//request body
String str1 = "{FName: " + name + ", LName: " + surname + ", VkId: " + vk + ", TelegrammId: " + telegram + ", Group: " + group+"}";
OutputStream out = connection.getOutputStream();
byte [] input = str1.getBytes(StandardCharsets.UTF_8);
out.write(input, 0, input.length);
out.close();
您需要做的第一件事是查看您要发布到的端点并确定它接受什么。我的意思是,您确定需要 json 吗?您确定您的负载是正确的吗?
确实没有办法解决它,要使用 API 你需要知道它期望什么。
其次,您的字符串 str1
不包含有效的 JSON,所以即使您的所有字段和类型都正确,这也行不通。
有效的 Json 将读作
{"FName": "someName", "LName": "someName"}
你有什么产生这个
{FName: someName, LName: someName}
注意到您的字符串中缺少引号了吗?甚至 Whosebug 解析器也不知道该怎么做:)
我有一个服务器,我想在 Java 中以 json 的形式向其发送 post 请求。但是在发送之后,它给出了答案:“KeyError: 400 Bad Request: 浏览器(或代理)发送了该服务器无法理解的请求。”。无论我如何更改数据,它仍然会报错,并且发送的请求不会出现在服务器上。我该如何解决这个问题?
URL url = new URL("http://buldakovn.pythonanywhere.com/addStudent");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/json; utf-8");
connection.setRequestProperty("Accept", "application/json");
connection.setDoOutput(true);
//request body
String str1 = "{FName: " + name + ", LName: " + surname + ", VkId: " + vk + ", TelegrammId: " + telegram + ", Group: " + group+"}";
OutputStream out = connection.getOutputStream();
byte [] input = str1.getBytes(StandardCharsets.UTF_8);
out.write(input, 0, input.length);
out.close();
您需要做的第一件事是查看您要发布到的端点并确定它接受什么。我的意思是,您确定需要 json 吗?您确定您的负载是正确的吗?
确实没有办法解决它,要使用 API 你需要知道它期望什么。
其次,您的字符串 str1
不包含有效的 JSON,所以即使您的所有字段和类型都正确,这也行不通。
有效的 Json 将读作
{"FName": "someName", "LName": "someName"}
你有什么产生这个
{FName: someName, LName: someName}
注意到您的字符串中缺少引号了吗?甚至 Whosebug 解析器也不知道该怎么做:)