【问题标题】:String to Response (http) in JavaJava中的响应字符串(http)
【发布时间】:2016-10-16 13:33:53
【问题描述】:

我有一个接收“响应”对象的网络服务调用,但我只能将它作为字符串接收,就像下一个一样:

<200 OK,{"id":0,"amount":10000,"type":"Normal","userId":0,"userIdTeller":0,"createdAt":"15/12/2016 12:08","branchOfficeyId":0},{Server=[Apache-Coyote/1.1], Access-Control-Allow-Origin=[*], Access-Control-Allow-Methods=[*], Access-Control-Allow-Headers=[*], Access-Control-Max-Age=[86400], Content-Type=[application/json], Transfer-Encoding=[chunked], Date=[Sun, 16 Oct 2016 13:21:02 GMT]}>

所以,我对第一部分 &lt;200 OK 和第二部分 {"id":0,"amount":10000,"type":"Normal","userId":0,"userIdTeller":0,"createdAt":"15/12/2016 12:08","branchOfficeyId":0} 感兴趣。我可以轻松地用, 拆分并取前两个元素,但如果你知道一个类来解组这个字符串会更好。

最好的问候!

【问题讨论】:

  • 你用的是什么http客户端库?
  • 你用什么做webservice?是像泽西岛那样的 JAX-RS 实现吗?你能分享一下收到这个的代码吗?
  • 这是一个 REST WebService,但我只对解析这个字符串感兴趣。
  • 这是一个奇怪的字符串作为响应。您确定该字符串不是使用某些对象的 toString() 方法记录到屏幕的状态代码、响应内容和属性吗?如果是这样,请注意 toString() 是用于记录而不是用于处理(大部分)。
  • 你能发布一些你的代码吗?

标签: java http response


【解决方案1】:

您可以创建一个自定义的用户定义 bean 类,该类将保存响应实体对象的详细信息,例如 id、amount 等及其 getter 和 setter

我建议在使用您的客户端代码时以以下方式使用 RestTemplate。

假设 JSON 等效 Java 对象是 MyResponse 的实例,您可以使用以下客户端代码。

private void getMyResponse()
{
    final String uri = "theRestWebServiceURI";
    RestTemplate restTemplate = new RestTemplate();

    MyResponse myResponse = restTemplate.getForObject(uri, MyResponse.class);

}

请注意,您可能必须添加 Jackson 依赖项,因为 Spring RestTemplate 将使用其 API 将 JSON 编组/取消编组到 Java 对象中,反之亦然。

【讨论】:

  • 是的,我已经准备好使用类来解组 json 元素,但我正在寻找以前的类来解组响应而无需编写自定义代码。
  • 能否请您详细说明在不编写自定义代码的情况下解组响应需要为例如编写自定义 Java bean 类MyResponse 如上述评论。如果您正在谈论检索响应状态和正文,那么您可以检查 Spring 的 RestTemplate's exchange 方法。
猜你喜欢
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多