开发者社区 > 云原生 > Serverless > 正文

测试function的时候设置了header,为啥在测试结果中看到的request header没有

测试function的时候设置了header,为啥在测试结果中看到的request header没有

提问23.png

展开
收起
山海行 2023-06-15 10:54:28 114 0
5 条回答
写回答
取消 提交回答
  • 可能是由于在函数运行时没有正确地设置 Content-Type 为 application/octet-stream 导致的。 在函数配置文件中,需要添加 Content-Type 属性,指定传递的文件类型为 application/octet-stream如果您需要在测试结果中看到 header,可以在函数中打印出请求头的内容,并将其返回给您的测试结果

    2023-06-16 15:25:54
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在测试函数时设置的 header(请求头)是不会出现在测试结果中的 request header(请求头)中的。这是因为在测试函数时,函数计算服务会直接将测试事件作为输入参数传递给函数代码,而不会将测试请求作为 HTTP 请求发送。

    如果您需要测试某个函数在响应 HTTP 请求时是否正确处理了请求头,可以通过以下方式进行:

    1. 将函数部署到云端,并通过 API 网关等方式进行访问。在访问时可以添加自定义的请求头,然后观察函数是否正确处理了该请求头。

    2. 如果您使用的是 Python 语言,还可以通过本地运行 uwsgi 或其他 WSGI 服务器来模拟 HTTP 请求,以此测试函数在响应请求时的表现。在模拟请求时,可以通过添加 headers 参数来设置需要的请求头。例如:

    import requests
    
    url = 'http://localhost:9000/2016-08-15/proxy/<your-function-name>/'
    headers = {
        'X-My-Header': 'value'
    }
    payload = 'test'
    
    response = requests.post(url, data=payload, headers=headers)
    print(response.text)
    

    在测试时仍需确保函数代码正确处理了请求头,并且按照您的预期进行处理。

    2023-06-16 15:15:50
    赞同 展开评论 打赏
  • 代码中从请求头获取 HTTP_AUTHORIZATION

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-06-15 17:27:48
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    在测试function时设置的header是在发送HTTP请求时添加到请求头中的,但是在测试结果中看到的Request Headers是从服务器返回的响应头中提取的,并不包含在发送的请求中。如果你想确认发送的请求头是否包含你设置的header,你可以使用浏览器的开发者工具,在Network选项卡中查看请求的Headers部分。

    2023-06-15 16:45:01
    赞同 展开评论 打赏
  • 在测试函数时设置的 header 可能不会在测试结果中显示,这是因为测试函数时传入的 header 只是为了模拟请求,而不是真正的请求。

    如果您需要在测试结果中看到 header,可以在函数中打印出请求头的内容,并将其返回给您的测试结果。您可以在函数中使用以下代码来打印请求头:

    def handler(event, context):
        headers = event['headers']
        print(headers)
        return 'Hello World'
    

    这段代码可以打印出请求头的内容,并将其返回给测试结果。同时,您还可以在测试结果中看到打印出的请求头内容。

    2023-06-15 11:05:44
    赞同 展开评论 打赏

快速交付实现商业价值。

热门讨论

热门文章

相关电子书

更多
移动互联网测试到质量的转变 立即下载
给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
F2etest — 多浏览器兼容性测试整体解决方案 立即下载