我正在尝试使用小型 Java 程序执行请求,但收到 400 - 错误请求作为响应:
URI uri = new URIBuilder().setScheme("https")
.setHost("somehost.com")
.setPath("/API/v1/export").build();
HttpPost post = new HttpPost(uri);
post.setHeader("X-API-ID", "myId");
post.setHeader("Accept", "application/json");
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("format", "csv"));
params.add(new BasicNameValuePair("userId", "userId"));
post.setEntity(new UrlEncodedFormEntity(params));
JsonNode responseJson = sendResponseEngineRequest(post);
此responseJson返回以下值:
{"meta":{"httpStatus":"400 - Bad Request","error":{"errorMessage":"Invalid Content-Type. expected=application/json found=application/x-www-form-urlencoded","errorCode":"RP_0.1"}}}
提前致谢。
最佳答案
答案实际上就在您收到的错误中。
您指定您只接受 post.setHeader("Accept", "application/json");
并且错误告诉您您请求的是 found=application/x-www-form-urlencoded
如果您可以控制请求数据的端点,请将其更改为 application/json。如果您不将 post.setHeader("Accept", "application/json");
更改为 post.setHeader("Accept", "application/x-www-form-urlencoded ");
关于java - 收到 400 - 错误请求 Java 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38530533/