>백엔드 개발 >Golang >Golang의 HTML 응답 본문에서 XML을 디코딩할 때 \'EOF 오류\'를 수정하는 방법은 무엇입니까?

Golang의 HTML 응답 본문에서 XML을 디코딩할 때 \'EOF 오류\'를 수정하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-01 20:14:02232검색

How to Fix

오류: xml.NewDecoder(resp.Body).Decode가 Golang에서 EOF 오류를 발생시킴

HTML 응답에서 XML을 디코딩하려고 할 때 body의 경우 xml.NewDecoder(resp.Body).Decode(&v)를 사용할 때 EOF 오류가 발생할 수 있습니다. 본문 내용을 이미 한 번 읽은 경우에 발생합니다.

해결 방법

이 문제를 해결하는 열쇠는 본문 내용의 성격을 이해하는 데 있습니다. 제공된 코드에서는 먼저 본문 내용을 읽고 ioutil.ReadAll(resp1.Body)을 사용하여 문자열 변수에 저장합니다. 그러나 일단 내용을 읽은 후에는 xml.NewDecoder(resp1.Body).Decode(&v)와 같은 다른 함수로 다시 읽을 수 없습니다. 이로 인해 EOF 오류가 발생합니다.

가장 편리한 해결 방법은 본문 콘텐츠를 여러 번 사용하는 것입니다. 이를 달성하는 한 가지 방법은 바이트 배열에서 XML을 디코딩할 수 있는 xml.Unmarshal 함수를 사용하는 것입니다. 따라서 xml.NewDecoder(resp1.Body).Decode(&v)를 사용하는 대신 다음 코드를 사용할 수 있습니다.

<code class="go">err = xml.Unmarshal([]byte(conts1), &v)
if err != nil {
    fmt.Printf("error is here: %v", err)
    return
}</code>

이 접근 방식을 사용하면 본문 내용을 여러 번 읽고 디코딩할 수 있습니다. EOF 오류입니다.

위 내용은 Golang의 HTML 응답 본문에서 XML을 디코딩할 때 \'EOF 오류\'를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.