C# API未从HttpClient获取参数
我不确定为什么不能将数据从主体传递到API 下面是随附的代码。在调试中,API补丁方法确实会被命中,但所有属性都为空/null 我可以通过使用Fiddler来验证API是否有效。所以我一定是错过了一些关于角度HttpClient的东西 API: 打字稿C# API未从HttpClient获取参数,c#,angular,rxjs,C#,Angular,Rxjs,我不确定为什么不能将数据从主体传递到API 下面是随附的代码。在调试中,API补丁方法确实会被命中,但所有属性都为空/null 我可以通过使用Fiddler来验证API是否有效。所以我一定是错过了一些关于角度HttpClient的东西 API: 打字稿 headers = new HttpHeaders().set("Content-Type", "application/json"); updateItem(myItem: MyItem) { let body = JSON.st
headers = new HttpHeaders().set("Content-Type", "application/json");
updateItem(myItem: MyItem) {
let body = JSON.stringify(myItem);
console.log(body);
return this.http
.patch(this.ApiUri,
{
"Id": myItem.Id,
"Name": myItem.Name,
"Value": myItem.Value
}, { headers: this.headers })
.catch(this.handleError);
};
对于遇到相同问题的任何人。我通过以下方式解决了这个问题:
let body = JSON.stringify(myItem);
const options = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' }),
};
return this.http
.patch(this.ApiUri, body, options)
.catch(this.handleError);
@xxbbcc,因为前两段代码是C#…如果您在发送请求时在浏览器的“开发人员工具”网络面板中进行检查,那么数据是成功发送的,还是为空/空?这与OPs代码有什么不同?你不能在没有解释的情况下将代码转储到一个答案中。看起来他正在使用RequestOptions,但是我在试图模仿他的代码时遇到了Typscript错误。
headers = new HttpHeaders().set("Content-Type", "application/json");
updateItem(myItem: MyItem) {
let body = JSON.stringify(myItem);
console.log(body);
return this.http
.patch(this.ApiUri,
{
"Id": myItem.Id,
"Name": myItem.Name,
"Value": myItem.Value
}, { headers: this.headers })
.catch(this.handleError);
};
let headers: Headers = new Headers({ 'Content-Type': 'application/json' });
let options: RequestOptions = new RequestOptions({ headers:headers });
return this.http
.patch(this.ApiUri,
{
"Id": myItem.Id,
"Name": myItem.Name,
"Value": myItem.Value
}, options)
.catch(this.handleError);
let body = JSON.stringify(myItem);
const options = {
headers: new HttpHeaders({ 'Content-Type': 'application/json' }),
};
return this.http
.patch(this.ApiUri, body, options)
.catch(this.handleError);