我知道类似的帖子,我也检查过,但没有一个能帮到我。
我想POST到一个需要三个参数和一个基本身份验证的API(管理示例任务)。在postman中它可以工作。我提供的正文如下:
{
"title": "foo",
"description": "bar",
"completed": "false"
}
并设置基本身份验证(使用用户名和密码)。API发送如下响应:
{
"id": 0001
}
如果我向api发送POST,一切都很好,但现在我想在java中实现它。如果我尝试发送一个POST: HttpClientErrorException: 400错误请求(DefaultACK seErrorHandler),我会收到一个400错误请求。任务和任务响应是pojo的,包含请求和响应中的字段以及无参数/全参数构造函数、getter和setter。
Task task = new Task("foo", "bar", false);
RestTemplate template = new RestTemplate();
HttpEntity<Task> httpEntity = new HttpEntity<>(task, createHttpHeader());
ResponseEntity<TaskResponse> result = template.exchange(uri, HttpMethod.POST, httpEntity, TaskResponse.class);
private HttpHeaders createHttpHeader() {
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setContentType(MediaType.APPLICATION_JSON);
requestHeaders.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
requestHeaders.set("Authorization", createBasicAuthHeaderValue(username, password));
return requestHeaders;
}
private String createBasicAuthHeaderValue(String username, String password) {
String credentials = username + ":" + password;
byte[] base64Credentials = Base64.encodeBase64(credentials.getBytes());
return "Basic " + Arrays.toString(base64Credentials);
}
我发现,这个实现很好。它接受String作为响应类型。还有另一个问题,但与此上下文无关。
问题内容: 下面是代码片段;基本上,当错误代码不是200时,我正在尝试传播异常。 但是,在服务器响应为500的情况下,出现异常 我真的需要在尝试中包装其余模板交换方法吗?那么代码的目的是什么? 问题答案: 你想要创建一个实现的类,然后使用它的一个实例来设置其余模板的错误处理: 此外,Spring仅提供一个类,你可以扩展该类,而不是实现接口,以防万一你只想覆盖该方法。
但是,在服务器发出500响应的情况下,我得到了异常 我真的需要在try中包装rest模板交换方法吗?那么代码的目的是什么呢?
问题内容: 由于JavaScript在单个线程中运行,因此在发出AJAX请求后,后台实际发生了什么?我想对此有更深入的了解,有人可以阐明吗? 问题答案: 在幕后,javascript具有事件队列。每次执行javascript线程完成时,它都会检查队列中是否还有其他事件要处理。如果存在,它将退出队列并触发该事件(例如,单击鼠标)。 位于ajax调用下的本机代码网络将知道ajax响应何时完成,并且事件
我不熟悉Spring RestTemplate。 但是对于这个项目,我必须使用Spring RestTemplate发送一个POST调用来使用rest API。
问题内容: 我有一个页面作为HtmlUnit中的UnexpectedPage返回,响应为JSON。我可以使用HTMLUnit进行解析还是需要一个额外的库? 问题答案: HtmlUnit不支持它。它最多可以执行JS函数。您需要事先检查返回的响应是否匹配,然后使用合适的工具进行解析。Google Gson 在此方面很有用。 如果JSON结构是事先已知的,则您甚至可以使用Gson将其转换为完全有价值的J
问题内容: 我不熟悉Spring RestTemplate。 但是对于这个项目,我必须使用Spring RestTemplate发送POST调用以使用rest api。 我正在使用此代码: 一切正常。 我想检索HTTP状态代码(例如:200 OK。)。我该怎么办?谢谢。 问题答案: 您可以按以下方式使用postForEntity方法…