为了账号安全,请及时绑定邮箱和手机立即绑定

将标头注入 httptest.Recorder 以便 echo 上下文可以在

将标头注入 httptest.Recorder 以便 echo 上下文可以在

Go
动漫人物 2022-11-23 20:08:34

我有一些测试将标头注入 Echo,如下所示:


func test() {

    request := httptest.NewRequest(http.MethodGet, "/", http.NoBody)

    recorder := httptest.NewRecorder()

    recorder.HeaderMap.Add("If-None-Match", "\"d41d8cd98f00b204e9800998ecf8427e\"")


    context := inst.NewContext(request, recorder)


    testFunc(context)


    fmt.Printf("Status: %d", context.Response().Status)

}


func testFunc(ctx echo.Context) {

    ifNoneMatch := ctx.Response().Header().Get(headers.IfNoneMatch)

    if !util.IsEmpty(ifNoneMatch) && etag == ifNoneMatch {

        ctx.Response().WriteHeader(304)

    }

}

我当前的解决方案有效,但由于HeaderMap已弃用,我正试图找到一种更好的方法来执行此操作。Result我试过通过 doing注入标头,Result().Header.Add("If-None-Match", "\"d41d8cd98f00b204e9800998ecf8427e\"")但在调用context.Response().Header(). 有什么办法吗?


查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1509条经验 获得超4个赞

您可以使用以下方法,而不是使用已弃用的 HeaderMap() :

request.Header().Set("Header-name", "Any header")


查看完整回答
反对 回复 5天前

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信