php 에디터 Baicao가 Golang gin 프레임워크에서 JSON 데이터와 이미지를 수신하는 방법을 소개합니다. 개발 과정에서 프런트엔드에서 전달된 JSON 데이터와 이미지 파일을 처리해야 하는 경우가 많습니다. Golang의 gin 프레임워크는 이 데이터를 수신하고 처리하는 간단하고 사용하기 쉬운 방법을 제공합니다. 이 글의 소개를 통해 gin 프레임워크의 구조를 사용하여 JSON 데이터를 수신하는 방법과 업로드된 이미지 파일을 처리하는 방법을 알아봅니다. 함께 탐험해 보세요!
요청 핸들러에 대한 코드가 있습니다:
으아악나는 이 핸들러를 테스트했습니다:
으아악테스트 중 다음 오류가 발생했습니다. 오류 #01: 숫자 리터럴에 잘못된 문자 '-'가 있습니다
요청 본문은 다음과 같습니다(log.print(req)를 사용하여 인쇄합니다):
으아악먼저 json 데이터로 문자열만 가지고 바이트로 변환합니다. 오류가 발생했을 때 json.marshal을 사용하여 json 데이터를 변환하는데 성공하지 못했습니다. c.bind를 사용하여 json 데이터를 구문 분석하고 c.formfile을 사용하여 주어진 이미지를 구문 분석하고 싶습니다. 이것이 가능합니까?
업데이트되었습니다. 아바타를 먼저 가져온 다음 바인드 구조를 통해 json을 가져오도록 코드를 교체했습니다. 이제 eof 오류가 발생했습니다.
json 데이터와 이미지 파일을 모두 수신하는 구조를 정의할 수 있습니다(필드 레이블 참고).
으아악multipart/form-data
의 다른 콘텐츠 유형을 자동으로 구문 분석할 수 있나요? 예를 들어 xml
或 yaml
.
현재 진(@1.9.0)은 multipart/form-data
中的 xml
或 yaml
。 json
很幸运,因为当目标字段是结构体或映射时,gin 恰好使用 json.unmarshal
에서 를 자동으로 해결하지 않습니다. json
은 대상 필드가 구조체 또는 맵일 때 양식 필드 값을 구문 분석하기 위해 gin이 json.unmarshal
을 사용하기 때문에 운이 좋습니다. binding.setwithpropertype
updaterequest.event
다음과 같이 직접 구문 분석할 수 있습니다(
으아악
application/xml
请求中的 yaml
或 application/x-yaml
请求中的 xml
混淆。仅当 xml
内容或 yaml
内容位于 中时才需要这样做多部分/表单-data
(
c.bindjson
不能用于从 multipart/form-data
读取 json,因为它假定请求正文以有效的 json 开头。但它是从一个边界开始的,看起来像 --30b24345d...
。这就是为什么它失败并显示错误消息 invalid character '-' in numeric literal
c.bindjson
은 요청 본문이 유효한 json으로 시작한다고 가정하기 때문에 --30b24345d...
와 같은 경계로 시작됩니다. 이것이 숫자 리터럴의 잘못된 문자 '-'
오류 메시지와 함께 실패하는 이유입니다. c.formfile("avatar")
之后调用 c.bindjson
不起作用,因为调用 c.formfile
会使整个请求正文被读取。并且 c.bindjson
이후에는 읽을 것이 없습니다. 이것이 바로 eof 오류가 나타나는 이유입니다. 전체 데모입니다. go test 运行 ./... -v -count 1
사용:
읽어주셔서 감사합니다!
위 내용은 Golang gin은 json 데이터와 이미지를 수신합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!