javascript - HttpErrorResponse 和 Spring 错误请求:缺少所需的请求正文
问题描述
我遇到了一个错误的请求。
服务器端错误:
Required request body is missing error
客户端错误:
HttpErrorResponse {headers: HttpHeaders, status: 400, statusText: "Bad Request",
url: "http://localhost:9000/api/create-risk", ok: false, …}
我已经使用内置的 swagger 组件测试了 API,并且得到了 201 响应,其中包含正在创建的正确对象和预期的响应。我有一种感觉,这是我的某个地方的疏忽,但我已经查看这段代码几个小时了,似乎无法找到断开连接的地方。任何帮助将不胜感激。
接口:
@PostMapping(value = "/create-risk", produces =
MediaType.APPLICATION_JSON_VALUE)
public Risk createRisk(
@RequestBody Risk risk
) {
log.debug("REST request to save Risk : {}", risk);
Risk createdRisk = new Risk();
createdRisk.setPocFirstName(risk.getPocFirstName());
riskManagementRepository.save(createdRisk);
return createdRisk;
}
角度风险模型
export interface IRiskModel {
id?: any;
login?: string;
firstName?: string;
lastName?: string;
email?: string;
activated?: boolean;
langKey?: string;
authorities?: any[];
createdBy?: string;
createdDate?: Date;
lastModifiedBy?: string;
lastModifiedDate?: Date;
password?: string;
}
export class RiskModel implements IRiskModel {
constructor(
public id?: any,
public firstName?: string,
) {
this.id = id ? id : null;
this.firstName = firstName ? firstName : null;
}
}
风险组件 HTML
<div class="jumbotron">
<div class="container">
<div class="row">
<div class="col-md-6 offset-md-3">
<form name="form">
<div class="form-group">
<input type="text" [(ngModel)]="risk.firstName" placeholder="First Name" name="firstName" class="form-control" id="firstName">
</div>
<div>
<button (click)="saveRisk()" class="btn btn-success">Save</button>
</div>
</form>
</div>
</div>
</div>
创造风险 TS
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import {RiskModel,RiskManagementService} from 'app/core';
@Component({
selector: 'jhi-create-risk',
templateUrl: './create_risk.component.html',
styleUrls: ['create_risk.scss']
})
export class CreateRiskComponent implements OnInit {
risk: RiskModel;
inProduction: boolean;
swaggerEnabled: boolean;
constructor(
private riskManagementService: RiskManagementService,
private route: ActivatedRoute) {}
ngOnInit() {
this.route.data.subscribe(({ risk }) => {
this.risk = risk.body ? risk.body : risk});
};
saveRisk() {
this.riskManagementService.createRisk(this.risk).subscribe(response
=> response);
}
}
风险服务 TS
import { Injectable } from '@angular/core';
import { HttpClient, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs';
import { SERVER_API_URL } from 'app/app.constants';
import {IRiskModel} from 'src/main/webapp/app/core';
@Injectable({ providedIn: 'root' })
export class RiskManagementService {
public resourceUrl = SERVER_API_URL + 'api/create-risk';
constructor(private http: HttpClient) {}
createRisk(risk: IRiskModel): Observable<HttpResponse<IRiskModel>> {
return this.http.post<IRiskModel>(this.resourceUrl, risk, {observe:
'response'});
}
}
解决方案
推荐阅读
- azure-devops - 如何在 Visual Studio-Test Explorer 中拥有机器人框架测试用例
- c - 如何在 OS161 中添加 open syscall 的两种变体?
- android - Android设置layout_weight,但跳过最后一个填充?
- python - django 中 request.method 的问题,它无法识别 POST,而是将 GET 显示为请求方法
- sdn - 如何使带有 RYU SDN 的 mininet 在 iperf 流量下正常工作?
- android - 通过 Instagram 相机在 Spark AR 中的 Android 上水平居中 2d 元素的问题
- c# - 如何从 C# 中列出使用/未使用的本机库?
- asp.net-core - Asp.Net Core 3.1 Web 应用程序,找不到 Api 页面问题
- ios - 如何使用适用于 iOS 的 Admob (google) 设置 MoPub 中介?
- node.js - 电子构建器在詹金斯上失败:ENOENT:没有这样的文件或目录,copyfile elevate.exe