当前位置: 首页 > 知识库问答 >
问题:

为什么响应实体正文返回空值?

东方琪
2023-03-14

我是Java和创建API的新手。我试图简单地发出一个后请求,并得到一个具体的值。以下是我的代码:

@Service
@AllArgsConstructor
public class WebService {

    private RestTemplate restTemplate;
    private static final String PROJECT_URL = "http://localhost:8080/project";

    public ResponseEntity<ProjectResponse> createProject(Project project) {
        ResponseEntity<ProjectResponse> completeProject = restTemplate.postForEntity(PROJECT_URL, project, ProjectResponse.class);
        System.out.println("Response body " + completeProject.getBody());
        return completeProject;
    }

}

ProjectResponse类简单地包含:

@Data
@NoArgsConstructor
public class ProjectResponse {
    private String id;
}

问题是,id aøwaus 被返回为 (id=空)。即使当我使用“字符串”而不是项目响应时,一切正常,我看到ID已创建。因此,由于某种原因,将响应映射到项目响应类存在问题。

有人知道可能出了什么问题吗?

共有2个答案

靳彦
2023-03-14

尝试这样做并处理这里的异常,使类ResponseErrorHandler并实现ResponseErrorHandler(i)

@Component
public class WebService {

private RestTemplate restTemplate;
private static final String PROJECT_URL = "http://localhost:8080/project";

public ProjectResponse createProject(Project project) {

ProjectResponseErrorHandler errorHandler = new ProjectResponseErrorHandler(
project.getId());
    restTemplate.setErrorHandler(errorHandler);
    ResponseEntity<ProjectResponse> completeProject = restTemplate.postForEntity(PROJECT_URL, project, ProjectResponse.class);
  log("Response body " + completeProject.getBody());
    return completeProject.getBody();
}
}
许博达
2023-03-14

试试这个,使你的项目彭斯类与项目相同。

@Service
@AllArgsConstructor
public class WebService {

    private RestTemplate restTemplate;
    private static final String PROJECT_URL = "http://localhost:8080/project";

    public ResponseEntity<Project> createProject(Project newProject) {
        Project completeProject = restTemplate.postForObject(PROJECT_URL, newProject, Project.class);
        log("Response body " + completeProject.getBody());//Log this instead
         return ResponseEntity.ok(completeProject);
    }

}
 类似资料:
  • 我使用的是Spring版本4(Spring data),我想将Object作为JSON返回,我想知道以下代码即使不使用xmlRootElement注释用户类也能工作: 任何机构都可以解释吗?当我需要注释要返回为JSON的对象类时,响应体/响应实体是否自己完成工作?

  • 我正在尝试调用FlickR API,但由于response.body()返回null而遇到困难。 我不确定它是否与我的JSON/POJO映射相关,但我无法弄清楚当我调用Flickr时如何访问来自改版的响应。我知道我的调用已经成功完成,因为我实际上能够通过日志拦截器查看JSON。 型号: 活动 }

  • 我想使用GooglePlaceAPI和自动完成视图。我有开发者控制台上的android和浏览器密钥。但当我尝试这些键API时,它返回空响应。 Logcat: D/Volley:[2651]a.a:请求的HTTP响应= 我的代码: 在onpostexecute日志中: 我是新来的google地方api,请帮我找到什么是错误的。

  • 当我从RestController返回POJO时,它在JSON对象中转换。但是当我尝试返回controller返回纯文本。怎么了? 我的RestController:

  • 我的环境: Shop RestController:Spring Boot 在localhost laptopn ubuntu 18:04 在localhost desktop pc windows 10上 邮递员要求: Spring引导控制器: 我已经尝试使用Observable和any以及HttpHeaders和Application/JSON,但响应相同。