1
Beego 프레임 워크를 사용하여 웹 응용 프로그램을 작성하고 있으며 일부 JSON 인코딩 데이터를 전달하려고합니다. 대략이 내가 가진 무엇 :Go에서 요청 본문 디코딩 - EOF를받는 이유는 무엇입니까?
this tutorial 당import (
"github.com/astaxie/beego"
)
type LoginController struct {
beego.Controller
}
func (this *LoginController) Post() {
request := this.Ctx.Request
length := request.ContentLength
p := make([]byte, length)
bytesRead, err := this.Ctx.Request.Body.Read(p)
if err == nil{
//blah
} else {
//tell me the length, bytes read, and error
}
}
, 위에서 그냥 (TM)를 작동합니다.
내 문제는 다음과 같습니다. bytesRead, err := this.Ctx.Request.Body.Read(p)
은 0 바이트를 읽고, err.Error()
은 EOF
을 반환합니다.
그러나 request.ContentLength
은 정상적인 바이트 수 (입력 한 데이터에 따라 19 이상)입니다.
요청 길이가 다소 길어 보이는 이유를 알 수 없지만 Read
에서 실패합니다. 어떤 아이디어? 당신이 Beego에서 JSON 페이로드를 연결하려는 경우
아마 다른 코드가 이미 요청 본문을 읽었 음을 의미합니다. 프로그램의 나머지 부분이 무엇을하는지 모른 채 정확하게 말하기는 어렵습니다. –
그 점을 다시 한 번 확인 하겠지만, 지금 당장 요청 기관을 읽는 유일한 방법은 확실합니다. – Chris
저는 사용중인 Beego 프레임 워크에 익숙하지 않습니다. 요청 본문 자체를 읽는지 여부를 확인하는 것이 좋습니다. –