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

时间:2017-12-11 14:37:32

标签: azure query-string azure-functions

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

req(和context.req)参数确实包含req.url中没有查询字符串的url,以及req.query中查询字符串作为键值对。但据我所知,直接访问完整的请求网址是不可能的。仅使用基本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。由于查询字符串没有正式格式,只有约定,所以能够处理所有类型的查询都很好字符串以防万一。

1 个答案:

答案 0 :(得分:2)

基于docs,您应该可以从req.originalUrl

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

评论更新:显然,这在2.0运行时尚未运行,但最终会得到支持:issue