[英]Angular API: headers being set in lazyUpdate
我正在从 angular 进行 API 调用 - 它将标头放入lazyUpdates。
这是进行调用的代码:
private sendRequest<T>(verb: string, url: string, body?: T): Observable<T> {
let myHeaders = new HttpHeaders();
myHeaders = myHeaders.set("Access-Key", "<secret>");
myHeaders = myHeaders.set("InstallationID", "0001");
myHeaders = myHeaders.set("FromLocal", "true");
myHeaders = myHeaders.set("Application-Names", ["exampleApp", "proAngular"]);
return this.http.request<T>(verb, url, {
body: body,
headers: myHeaders
}).pipe(catchError((error: Response) =>
throwError(`Network Error: ${error.statusText} (${error.status})`)));
}
接收调用的 API 方法的签名是
[Authorize]
[HttpPost("CommitAll")]
public async Task<ActionResult> CommitAll([FromBody] string updateDetailsStr)
{
...
}
接收 API 是 C# .NET 核心,它看不到这些值。 我需要强制它们进入 myHeaders.headers 或从 myheaders.lazyUpdate 中读取它们。 我该怎么做呢?
Headers 是 Request object 中的一个集合。 您需要以访问集合中成员的方式访问它。 尝试这样的事情:
IEnumerable<string> headerValues;
var nameFilter= string.Empty;
if (Request.Headers.TryGetValues("lazyUpdate", out headerValues))
{
nameFilter = headerValues.FirstOrDefault(); //<-- Or something
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.