当前位置: 首页 > 面试题库 >

Spring / RestTemplate-将实体放置到服务器

邓卓
2023-03-14
问题内容

请看下面的简单代码:

final String url = String.format("%s/api/shop", Global.webserviceUrl);

RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());

HttpHeaders headers = new HttpHeaders();
headers.set("X-TP-DeviceID", Global.deviceID);
HttpEntity entity = new HttpEntity(headers);

HttpEntity<Shop[]> response = restTemplate.exchange(url, HttpMethod.GET, entity, Shop[].class);
shops = response.getBody();

如您所见,以上代码旨在从服务器(以json格式)获取商店列表,并将响应映射到Shop对象数组。现在,我需要放置新商店,例如/ api / shop /
1。请求实体应具有与返回实体完全相同的格式。

我应该在网址中添加/ 1,创建新的Shop类对象,并用我要放置的值填充所有字段,然后与HttpMethod.PUT进行交换吗?

请为我澄清一下,我是Spring的初学者。代码示例将不胜感激。

我很困惑,因为我刚刚也注意到了RestTemplate.put()方法。那么,我应该使用哪一个呢?交换还是put()?


问题答案:

您可以尝试类似:

    final String url = String.format("%s/api/shop/{id}", Global.webserviceUrl);

    RestTemplate restTemplate = new RestTemplate();
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());

    HttpHeaders headers = new HttpHeaders();
    headers.set("X-TP-DeviceID", Global.deviceID);
    Shop shop= new Shop();
    Map<String, String> param = new HashMap<String, String>();
    param.put("id","10")
    HttpEntity<Shop> requestEntity = new HttpEntity<Shop>(shop, headers);
    HttpEntity<Shop[]> response = restTemplate.exchange(url, HttpMethod.PUT, requestEntity, Shop[].class, param);

    shops = response.getBody();

认沽权无效,而交易所会给您答复,最好的检查地点是文档https://docs.spring.io/spring/docs/current/javadoc-
api/org/springframework/web/client/RestTemplate。
html



 类似资料:
  • 谢谢你的帮助!向你问好,安迪

  • 我有一个简单的设置,有一个Eureka服务注册服务器、一个用于公共API的服务和一个使用RESTTemplate从公共API调用的服务。Eureka告诉我服务已成功注册,但当我调用服务时 我得到以下异常 谢谢

  • 我的Spring应用程序分层为Bean、Service和dao。所有的@Transactional注释都在服务层中。 这是一个特定场景中的伪代码。 userBean.java UserDAOImpl.java 在我的save user测试用例中,update parent user操作在某些情况下可能会由于主键冲突而失败,这是意料之中的。 由于@Transactional注释是在service类中

  • 问题内容: 谁能提供给我一个代码示例,以使用Spring Rest模板访问通过https保护的REST服务URL。 我有证书,用户名和密码。服务器端使用了基本身份验证,我想创建一个可以使用提供的证书,用户名和密码(如果需要)连接到该服务器的客户端。 问题答案:

  • 我们的项目中使用的是Spring Cloud config server,它有多个微服务。配置服务器就绪后,我们现在将所有微服务的所有属性存储在一个中央git存储库中。每个微服务能够根据应用程序名称和配置文件提取自己的属性文件。我们试图将资源包存储在中央存储库中,并让config-server将这些资源包提供给微服务。我们的资源包包括属性文件,如messages_en.properties、mes

  • 关于上面的问题,我想请您帮忙。现在我正在尝试将应用程序(SpringCloudConfigServer)与另一个应用程序(limit-service)连接,limit-service应用程序必须选择SpringCloudConfigServer属性文件。当我点击http://localhost:8080/limits时,我需要像{“maximum”:888,“minimum”:8}一样获得oupp