使用提取API时如何记录实际的请求标头

时间:2019-11-16 11:26:08

标签: node.js fetch service-worker fetch-api

初学者问题,我正在Cloudflare Service Worker之一中使用提取API,将请求发送给第三方;一切正常,我可以发出请求并接收响应;但是现在我需要记录我发送和接收的所有内容,我不确定该怎么做;

主要要求: 能够记录正在发送的整个请求标头

问题在于我指定的请求标头不是要发送的完整标头,就像在下面的示例中,我仅指定了内容类型,但实际上,它将发送由应用程序本身添加的更多属性,例如接受,x转发,内容长度等。

请求:

    var toThirdPartyReqMethod = 'POST';
    var toThirdPartyReqHeader = {'content-type': 'application/json'};    
    var toThirdPartyReqSetting = {
      method: toThirdPartyReqMethod,
      headers: toThirdPartyReqHeader,
      body: toThirdPartyReqBodyArrayBuffer
    };
    var toThirdPartyUrl = "https://somewhere.com";

    var fromThirdPartyResponse = await fetch(toThirdPartyUrl, toThirdPartyReqSetting)

    var fromThirdPartyResponseBodyArrayBuffer = await fromThirdPartyResponse.arrayBuffer();

我能够使用fromThirdPartyResponse来消化响应;但我不知道如何记录我发出的确切请求。

我尝试如下操作:

var oriReqHeaderContentType = fromThirdPartyResponse.request.headers.get("content-type");

但是显然这不是正确的答案,并返回以下错误:

  

TypeError:无法读取未定义的属性“标头”

任何人都知道如何在使用访存API时记录正在发送的请求?

很抱歉问初学者问题:(

1 个答案:

答案 0 :(得分:0)

您可以像这样访问请求标头

const contentType = req.get(“ Content-Type”);