我想使用RESTTemplate将POST请求发送到RestAPI。当我执行下面的代码时,它给出了null响应。但是,我得到了http状态代码200 OK。我已经适当地添加了响应模型,所以模型没有问题。甚至,当我将响应类型更改为String时,它也不给我响应。有什么建议吗?
MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Authorization", "Basic " + "c21sOnBhc3N3b3Jk");
headers.add("Content-Type", "application/json");
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
HttpEntity<NikeIdgenReq> request = new HttpEntity<NikeIdgenReq>(nikeIdgenReq, headers);
String resp = restTemplate.postForObject(url, request, String.class);
在Googleing之后,我找到了一个解决方案,使响应模型类可序列化,并添加JsonProperty注释,如下代码所示
public class NikeIdgenRes implements Serializable{
@JsonProperty("bundleID")
private String bundleID;
@JsonProperty("ids")
private List<Id> ids = null;
@JsonProperty("gtin")
private String gtin;
@JsonProperty("quantity")
private Integer quantity;
@JsonProperty("types")
private List<String> types = null;
@JsonProperty("meta")
private Meta meta;
// getters & setters
}
public NikeIdgenRes addNikeIdgen(NikeIdgenRq nikeIdgenRq) {
String url = "https://idgen-dev.connected-product.edflab.nikecloud.net/sensors/id_bundle/v1";
HttpEntity<NikeIdgenRq> httpEntity = new HttpEntity<>(nikeIdgenRq, getHttpHeaders());
ResponseEntity<NikeIdgenRes> result = restTemplateBuilder.build().postForEntity(url, httpEntity, NikeIdgenRes.class);
NikeIdgenRes nikeIdgenRes = new NikeIdgenRes();
nikeIdgenRes.setBundleID(result.getBody().getBundleID());
nikeIdgenRes.setIds(result.getBody().getIds());
nikeIdgenRes.setGtin(result.getBody().getGtin());
nikeIdgenRes.setQuantity(result.getBody().getQuantity());
nikeIdgenRes.setTypes(result.getBody().getTypes());
nikeIdgenRes.setMeta(result.getBody().getMeta());
return nikeIdgenRes;
}
问题内容: 我正在开发一个React应用,该应用需要从elsaticsearch获取数据。在前端,实际上我正在尝试使用axios来执行请求: 我想获取带有某些ID的特定文档。上面的查询实际上在kibana内部有效。但是,以上查询返回my-type内的所有文档,我在这里做错了什么? 问题答案: 我认为以下应该可行。虽然爱可信自述说,是专门只为,,和请求,我没有看到在强制执行此代码的任何,和简化的测试
问题内容: 是否可以使用发送 请求,例如? 我想将以下xml发送到url 我是否还想在每个请求上动态添加自定义http标头(!)。 我怎样才能在春季实现这一目标? 问题答案: 首先,定义标题,如下所示: 您可以使用此方法设置任何标题。对于众所周知的标题,您可以使用预定义的方法。例如,为了设置标题: 然后定义一个或准备您的请求对象: 如果您可以某种方式访问该字符串,则可以使用。否则,您可以定义一
我不熟悉RESTAPI和Spring Boot。我一直在尝试使用存储员工数据的STS和MySQL创建RESTAPI。 一切似乎都很好,但是当我在Postman中发布数据时,空的行存储在MySQL和body中。 //员工控制器类 //员工存储库类 //员工服务类 //员工服务Impl
我有一个Web服务,它使用Spring Rest Controller(使用Netty而不是Apache Tomcat)处理GET/POST/PUT HTTP请求。我希望过滤我服务中的所有请求,当请求配置了特定的标头时,我希望将此特定请求发送到一个完全不同的URL,同时将响应返回到发送原始请求的相同实体。 这是我的代码: 在这个实现中,请求只是传递给我的普通rest控制器,而不会到达其他服务。我错
我正在使用RestTemboard使用Web服务,我的POST请求如下。 我试着打印我的requestBodyJsonObject并将其放入rest客户机,它工作正常,所以请求主体没有问题。但在这里,我并没有得到预期的结果,只是在没有rest客户端的请求主体的情况下发送post请求时得到了结果。 所以我在这里一无所知。非常感谢您的帮助。
我正在RestTemplate中使用exchange for GET方法。但是在exchange方法中传递requestEntity时,我得到了400个错误的请求。下面是我正在使用的代码。 生成URL: 我尝试从postman访问producer URL,其标题为Content-Type:Application/JSON,正文为{“firstName”:“a”,“lastName”:“b”,“da