Azure Functions:获取完整请求 URL,包括 HTTP 触发器函数中的查询字符串

Azure Functions: Get full request URL including query string in a HTTP Trigger function

有没有办法在 Azure Functions HTTP 触发器 Javascript 函数中获取完整的请求 URL,包括查询字符串部分?

req(和 context.req)参数确实包括 url,但 req.url 中没有查询字符串,查询字符串作为键值对包含在 req.query 中.但据我所知,无法直接访问完整请求 url。仅使用基础 url 和键值对象重建完整的 URL 也是不可能的。

例如 http://foo.azurewebsites.net/api/bar/baz?a=1&&&b=2&c=&d===5&e=&f=6&g

变成了

{
    url: '/bar/baz/',
    query: { 
        a: '1',
        b: '2',
        c: '\n\u0001d\u0012\u0003==5',
        e: '\n\u0001f\u0012\u00016',
        g: '\n\u0001a\u0012\u0003\n\u00011'
    }
}

访问完整请求 URL 是构建代理、URL 缩短器等所必需的。并且由于查询字符串没有官方格式,只有约定,所以它是很高兴能够处理所有类型的查询字符串以防万一。

基于docs,你应该可以从req.originalUrl得到它:

module.exports = function (context, req) {
  context.log('HTTP trigger function processed a request: ' + req.originalUrl);
  context.done();
};

来自评论的更新:显然,这还不适用于 2.0 运行时,但最终会得到支持:issue