我想实现使用Spring Cloud的客户端请求。我试过这个:
外国客户:
@FeignClient(name = "mail-service", url = "mail-service")
public interface EmailClient {
@RequestMapping(method = RequestMethod.POST, value = "/register")
void setUserRegistration(RegisterUserDTO registerUserDTO);
@RequestMapping(method = RequestMethod.POST, value = "/password_reset")
void setUserPasswordReset(PasswordResetDTO passwordResetDTO);
}
请求DTO:
public class RegisterUserDTO {
private int id;
public RegisterUserDTO() {
}
}
控制器:
@Autowire
EmailClient emailClient;
@PostMapping("/dummy")
public ResponseEntity<?> test() {
RegisterUserDTO obj = new RegisterUserDTO();
emailClient.setUserRegistration(obj);
return ok().build();
}
外型:
feign:
client:
config:
default:
connectTimeout: 5000
readTimeout: 5000
loggerLevel: basic
eureka:
client:
serviceUrl:
defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
instance:
preferIpAddress: true
但是当我发出POST请求时,我得到了例外:
22:50:05.325 [http-nio-8090-exec-1] DEBUG DispatcherServlet[logResult:1101] - Failed to complete request: feign.codec.EncodeException: Could not write request: no suitable HttpMessageConverter found for request type [org.engine.plugin.dto.RegisterUserDTO]
22:50:05.328 [http-nio-8090-exec-1] DEBUG HstsHeaderWriter[writeHeaders:169] - Not injecting HSTS header since it did not match the requestMatcher org.springframework.security.web.header.writers.HstsHeaderWriter$SecureRequestMatcher@461d6969
22:50:05.329 [http-nio-8090-exec-1] DEBUG SecurityContextPersistenceFilter[doFilter:119] - SecurityContextHolder now cleared, as request processing completed
22:50:05.334 [http-nio-8090-exec-1] ERROR [dispatcherServlet][log:175] - Servlet.service() for servlet [dispatcherServlet] in context with path [/engine] threw exception [Request processing failed; nested exception is feign.codec.EncodeException: Could not write request: no suitable HttpMessageConverter found for request type [org.engine.plugin.dto.RegisterUserDTO]] with root cause
feign.codec.EncodeException: Could not write request: no suitable HttpMessageConverter found for request type [org.engine.plugin.dto.RegisterUserDTO]
你知道我怎样才能解决这个问题吗?
是的,您没有在DTO中添加getter方法。
public class RegisterUserDTO {
private int id;
public RegisterUserDTO() {
}
public int getId() {
return id;
}
}
请参阅我添加的代码。
在我的例子中,我使用的是openfeign
依赖关系,而没有sping-boo-starter-web
。添加此依赖项后,错误将消失。可能是因为它包含了所需的json映射器。
我试图发送一个POST请求到REST服务使用REST模板,但得到下面的错误 RestClientException:无法写入请求:找不到适合请求类型[xxx.query.XBrainQueryRequest]和内容类型[application/json]的HttpMessageConverter。 我的XBrainQueryRequest课程如下 有人能解释我为什么会出错以及如何解决它吗?我对这些
我正在努力将带有JSON有效负载的POST请求发送到远程服务器。 此GET curl命令工作正常: 这个POST也很好: 所以我试着在我的Android应用程序中模仿它。 该应用程序在第一个GET请求上运行良好,但在第二个POST请求上发出400个错误请求。 下面是用于GET请求的代码: 以下是POST请求的源代码: 但它传达了这样一个信息: 这是Spring座控制器: 凭据资源类代码:
问题内容: 我正在编写一个使用RESTful服务的客户端。我需要以键,值对的形式发送请求,他们建议我为此使用Map。我正在调用的RESTful服务将仅接受JSON,而我的客户端将使用Java。实际上,它将成为现有企业EJB项目的一部分。 我已经编写了一个客户端,并且能够成功调用RESTful服务。实际上,如果我以String(JSON格式)发送请求,那么我什至会得到响应。但是我想避免将Map转换为
我正在编写一个客户端来使用RESTful服务。我被要求发送键,值对的请求,他们建议我为此使用地图。我调用的RESTful服务只接受JSON,我的客户端将Java。它实际上是现有企业EJB项目的一部分。 我已经编写了一个客户端,并且能够成功调用RESTful服务。事实上,如果我以字符串(JSON格式)发送请求,那么我甚至会得到一个响应。但我希望避免将映射转换为JSON格式字符串,然后在请求中发送出去
我使用Maven Spring 4.1。0 Java 6,我想使用RestTemplate()。postForEntity(url、请求、响应类型) 当我执行这段代码时: 但是我有这个错误: 组织。springframework。http。转换器。HttpMessageGenetWritableException:无法写入请求:在org上找不到适用于请求类型[java.util.HashMap]的
问题内容: 我从html中接收来自用户的一堆输入,然后将其传递给ajax查询以获取响应。 这是满足上述要求的Flask代码。 上面的方法无法通过get找到到“报告”的路线。但是,它可以在POST请求中找到它。 这是我得到的日志 错误的请求..我在这里做错了什么? 问题答案: GET请求没有 (*),并且不是JSON编码的,而是URL编码的(普通,常规键值对)。 这意味着您可以简单地使用jQuery