簡體   English   中英

如何在JavaScript中獲取所有Apigee請求標頭?

[英]How to get all Apigee request headers in JavaScript?

我有一些JavaScript,需要在其中使用Apigee中的所有請求標頭。 在線文檔( http://apigee.com/docs/api-services/content/javascript-object-model )提到它們可以通過context.proxyRequest.headers作為名稱/值對使用。 我是否必須遍歷它們,還是可以通過context.proxyRequest.headers將它們作為數組整體使用?

謝謝。

您可以使用以下內容通過javascript訪問請求標頭

var request_headers = context.getVariable("request.headers.names");

此變量的范圍僅在代理請求流中。

此代碼對我有用,以檢查所有請求標頭:

// reflectHeaders.js
// ------------------------------------------------------------------
//
// formats the request headers into a JSON response.
//
// created: Tue May 13 11:42:19 2014
// last saved: <2014-May-13 12:05:39>

var requestHeaders = context.getVariable("request.headers.names"),
    result = {};

// requestHeaders is a java.util.TreeMap$KeySet; convert it to string
requestHeaders = requestHeaders + '';

// convert from "[A, B, C]" to an array of strings: ["A", "B", "C"]
requestHeaders = requestHeaders.slice(1, -1).split(', ');

// insert each header into the response
requestHeaders.forEach(function(x){
  var a = context.getVariable("request.header." + x );
  result[x] = a;
});

// set the response content:
context.setVariable('response.content', JSON.stringify(result, null, 2));

如果您願意, 這里有一個完整的代理包 ,顯示了如何使用此JS。 只需將其部署到Apigee組織中,然后像這樣調用它:

curl -H x-custom-header:my-custom-value http://ORG-ENV.apigee.net/v1/ex-js-header

輸出:

{
  "Accept": "*/*",
  "Host": "ORG-ENV.apigee.net",
  "User-Agent": "curl/7.30.0",
  "x-custom-header": "my-custom-value"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM