java – Postman关于使用REST Api的意外’S’
发布时间:2020-12-15 04:39:15 所属栏目:Java 来源:网络整理
导读:我在 SpringBootApplication中编写了非常基本的REST服务.当我试图击中api时,我得到的反应就像意外的’S’ 这是我的api, @RestController @RequestMapping(value="/rally") public class CreateProjectApi { @RequestMapping(value = "/createProject",produc
我在
SpringBootApplication中编写了非常基本的REST服务.当我试图击中api时,我得到的反应就像意外的’S’
这是我的api, @RestController @RequestMapping(value="/rally") public class CreateProjectApi { @RequestMapping(value = "/createProject",produces = { "application/json" },consumes = { "application/json" },method = RequestMethod.GET) public ResponseEntity<String> createProj() { String s = "Success..."; return new ResponseEntity<String>(s,HttpStatus.OK); } } 这是我的POM.XML, <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.altimetrik.rally</groupId> <artifactId>RallyRestApi</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>RallyRestApi</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.4.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <!-- Setup Spring MVC & REST,use Embedded Tomcat --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.rallydev.rest</groupId> <artifactId>rally-rest-api</artifactId> <version>2.2.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project> 我通过postman命中api,内容类型为:application / json in header.但我得到了意想不到的“S”作为回应.我已经按照这个链接unexpected ‘s’ in response of restful service,但我没有得到任何解决方案.任何人都可以帮助我吗? 解决方法
正如
user7790438和
nbrooks的评论中所解释的那样,问题是您的响应将是纯文本(成功…),即使您告诉它加载JSON(通过提供Content-Type:application / json标头).
要返回JSON,您应该返回某种对象,例如,您可以创建一个这样的ProjectStatus类: public class ProjectStatus { private String status; public ProjectStatus(String status) { this.status = status; } public String getStatus() { return status; } } 现在,在您的REST控制器中,您应该返回ResponseEntity< ProjectStatus>,如下所示: return new ResponseEntity<ProjectStatus>(new ProjectStatus("Success..."),HttpStatus.OK); 当您使用Postman时,这将导致以下JSON: {"status": "Success..."} 您几乎可以返回任何您想要的对象.一个示例是在响应中返回创建的项目. 或者,如果您不需要JSON,则可以提供Content-Type:text / plain标头. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读