Почтальон не может обработать ответ JSON с длинной строкой - PullRequest
0 голосов
/ 11 марта 2020

Я строил API с GO, который извлекает некоторые данные из базы данных MongoDB и отвечает JSON

Так что все работает нормально, пока я не вставлю строку «Содержимое», и проблема кажется, ограничивается почтальоном. Почтальон застревает в «Запросе на отправку», если строка Содержания слишком длинная.


type Article struct {
    Id      primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"`
    Title   string             `json:"title,omitempty" bson:"title,omitempty"`
    Content string             `json:"content,omitempty" bson:"content,omitempty"`
    Imgurl  string             `json:"imgurl,omitempty" bson:"imgurl,omitempty"`
}

func ArticleById(c *gin.Context) {
    id, _ := primitive.ObjectIDFromHex(c.Param("id"))
    article := Article{}
    ctx, _ := context.WithTimeout(context.Background(), 5*time.Second)
    collection.FindOne(ctx, Article{Id: id}).Decode(&article)

    //--------------------THIS WORKS FINE
    fmt.Println(article.Content)
    //--------------------THIS WORKS FINE TOO
    fmt.Println(gin.H{
        "article": gin.H{
            "title":   article.Title,
            "imgurl":  article.Imgurl,
            //---------THIS IS THE PROBLEM LINE
            "content": article.Content},
    })

    //--------------------THIS WORKS WITH SHORT STRINGS ONLY (IN POSTMAN)
    c.JSON(200, gin.H{
        "article": gin.H{
            "title":   article.Title,
            "imgurl":  article.Imgurl,
            //---------THIS IS THE PROBLEM LINE
            "content": article.Content},
    })
}

Вот краткое описание проблемы, что работает, а что нет.

  • Проблема не похожа на проблему с базой данных, я могу напрямую печатать содержимое
  • Я могу распечатать его после сопоставления через gin.H
  • Работает нормально, если я опускаю "Content"
  • Кажется, работает нормально (с почтальоном) даже с контентом до Content линия достигает определенной длины. более короткая строка работает отлично, даже более короткие многострочные тексты работают нормально.
  • Все работает нормально, если я нажму на него из браузера, проблемы возникают только у почтальона.
  • Работает и из CURL
  • Прекрасно работает, когда я использую ту же базу данных из Node.JS, Express api с почтальоном.

Где именно проблема? Что я могу попробовать?

...