Spring的代理问题,类型转化出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring的代理问题,类型转化出错相关的知识,希望对你有一定的参考价值。

没有配置xml,怎么解决该问题

参考技术A 1、VRAY的代理物体不是省面用的,它只是让程序计算这个物体是从你代理出去的文件来读取。偶尔会出现面数问题。 2、在导出代理物体之前,最好把物体塌陷,并把材质合并在一个多维子材质中(塌陷物体时会有选项,选第二个,只有在物体含有多个材质的时候会出现选项)。再保存这个材质球。导入新环境后读取保存的材质球并赋予物体就不会丢失材质了。

使用 @RestController 在 Spring Boot 中发布数据时出错

【中文标题】使用 @RestController 在 Spring Boot 中发布数据时出错【英文标题】:Error while posting data in spring boot using @RestController 【发布时间】:2020-09-27 02:37:41 【问题描述】:

我在使用 REST API 编写 Spring Boot 应用程序时不断收到此错误。

“状态”:415, "error": "不支持的媒体类型", "message": "不支持内容类型'text/plain'"

如何消除错误?

我的Post Request代码如下,在我的

StudentController.java,

@RequestMapping(value = "/students/studentId/courses", method = RequestMethod.POST,
            consumes = "application/json",
            produces = "application/json")

public ResponseEntity<Void> registerStudentForCourse(@PathVariable String studentId, @RequestBody course newCourse) 


        course course1 = studentService.addCourse(studentId, newCourse);
        if (course1 == null)
            return ResponseEntity.noContent().build();
        URI location = ServletUriComponentsBuilder.fromCurrentRequest().path("/id").buildAndExpand(course1.getId()).toUri();
        return ResponseEntity.created(location).build();

我对 requestBody 的邮递员输入如下,为 student 添加新课程。代码在json中


 "name":"Microservices",
 "description"="10 Steps",
 "steps":
 [
    "Learn How to Break Things up ",
    "Automate the hell out of everything ",
    "Have fun"
 ]

My addcourse()方法如下:

SecureRandom random = new SecureRandom();
public course addCourse(String studentId, course cour)

    Student student = retrieveStudent(studentId);
    if(student==null)
    
        return null;
    
    String randomId = new BigInteger(130,random).toString(32);
    cour.setId(randomId);
    student.getCourses().add(cour);
    return cour;

【问题讨论】:

这个异常告诉你一切......你发送的是纯文本,而不是 JSON(根据内容类型)。所以修复你的邮递员请求。 你也有魔法字符串(而不是MediaType.APPLICATION_JSON_VALUE),除了@PostMapping("/students/studentId/courses")之外的一切都只是分散注意力。 【参考方案1】:

您的端点只接受application/json,但您发送text/plain

只需将 content-type: application/json 添加到您的 HTTP 请求标头即可。

【讨论】:

【参考方案2】:

尝试从以下位置更改行:

@RequestMapping(value = "/students/studentId/courses", method = RequestMethod.POST,
            consumes = "application/json",
            produces = "application/json")

收件人:

@RequestMapping(value = "/students/studentId/courses", method = RequestMethod.POST, consumes = MediaType.ALL_VALUE)

【讨论】:

以上是关于Spring的代理问题,类型转化出错的主要内容,如果未能解决你的问题,请参考以下文章

uint8_t uint32_t 类型强制转换出错 以及 unsigned char 类型和 unsigned int 类型相互转化

怎么把http代理转化Sock代理?

百思不得其解:PHP数据类型字符串转整数型出错?

在C#中如何将int类型强制转换为double类型

springMVC使用@InitBinder注解把字符串转化为Date类型

Spring总结