Skip to content

[BUG] MVC does not support receiving protobufs #2489

Open
@dongzhanhub

Description

Describe the bug
On the issue of receiving protobuf data exception in MVC
To Reproduce

  1. The following is the main code segment, which works as a whole except for errors when receiving protobuf
  app := iris.New()
  return app.Run(iris.Addr(":"+port),
   	iris.WithKeepAlive(1*time.Minute),
   	iris.WithoutInterruptHandler,
   	iris.WithOptimizations,
   	iris.WithProtoJSON,
   	iris.WithoutBodyConsumptionOnUnmarshal,
   	iris.WithoutServerError(iris.ErrServerClosed),
   	iris.WithRemoteAddrHeader("X-Real-IP"),
   )
   
   mvcApp := mvc.New(app)

   api := mvcApp.Party("/")
   api.Party("test").Handle(new(controllers.TestController))

Question:Directly in the outermost layer directly error, the program has not been executed to the controller
Response Error:valid character '$' looking for beginning of valueinvalid character '$' looking for beginning of value

  1. This code reads protobuf without problem:
app.Post("/read", read)

func read(ctx iris.Context) {
	var request pb.FcmRequest

	err := ctx.ReadProtobuf(&request)
	if err != nil {
		ctx.StopWithError(iris.StatusBadRequest, err)
		return
	}

	fmt.Println(request)
}


func read(ctx iris.Context) {
	var request pb.FcmRequest

	err := ctx.ReadProtobuf(&request)
	if err != nil {
		ctx.StopWithError(iris.StatusBadRequest, err)
		return
	}

	fmt.Println(request)

	ctx.Writef("HelloRequest.Name = %s", request)
}

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions