Как добавить json данные в качестве параметра в c .Body.Request? - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть функция с именем LoginUser(c *gin.Context) с аргументом c *gin.Context. Я хочу вызвать LoginUser из другой функции CreateBlogsWithUser. Но LoginUser требует username and password. Я пытался передать c.Request.Body, но он не работает.

func (server *Server) CreateBlogsWithUser() {
    resp := httptest.NewRecorder()
    gin.SetMode(gin.TestMode)
    c, _ := gin.CreateTestContext(resp)
    c.Request.Header.Add("Content-Type","application/json")
    c.Request.Body.Add("uname","test") //this line is not working
    c.Request.Body.Add("password","test@123")  //this line is not working
    LoginUser(c)
}

func LoginUser(c *gin.Context) {
    requestData := models.CCPADefaultData{}
    err := json.NewDecoder(c.Request.Body).Decode(&requestData)
    if err != nil {
        errList["Invalid_body"] = "Missing request parameters."
        c.JSON(http.StatusUnprocessableEntity, gin.H{
            "status": http.StatusUnprocessableEntity,
            "error":  "Always come in this if condition.",
        })
        return
    }
    //XXXXXXXXX
    //Code
}

Я пробовал много вещей, но ни одна из них не работает для меня. Пожалуйста, помогите, как передать параметр, если аргумент c *gin.Context

...