繁体   English   中英

Angular API:在lazyUpdate中设置标头

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM