我正在尝试访问在线可用的 XML 文件,但在 GET 之后 XML 格式消失了。
我做错了什么?
非常感谢!
func getHttp(address string) string{
resp, err := http.Get(address)
resp.Header.Add("Content-Type","application/xml; charset=utf-8")
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
return (string(data))
}
新格式如下所示:
{"SessionKey":"229eaeaa9fb14a0d85ff38ae4e0c7870_ecilpojl_018FC93424D13ECC0908CE5BC5E3F86B","Query":{"Country":"GB","Currency":"GBP","Locale":"en-gb","Adults":1,"Children":0,"Infants":0,"OutboundDate":"2016-10-08","LocationSchema":"Default","CabinClass":"Economy","GroupPricing":false},
代替
<SessionKey>229eaeaa9fb14a0d85ff38ae4e0c7870_ecilpojl_018FC93424D13ECC0908CE5BC5E3F86B</SessionKey>
<Query>
<Country>GB</Country>
<Currency>GBP</Currency>
<Locale>en-gb</Locale>
<Adults>1</Adults>
<Children>0</Children>
<Infants>0</Infants>
<OutboundDate>2016-10-08</OutboundDate>
<LocationSchema>Default</LocationSchema>
<CabinClass>Economy</CabinClass>
<GroupPricing>false</GroupPricing>
</Query>
最佳答案
参见: https://www.whatismybrowser.com/detect/what-http-headers-is-my-browser-sending
试试这个(并将网址替换为您的网址):
package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
fmt.Println(getHttp(`http://stackoverflow.com/`))
}
func getHttp(url string) string {
client := &http.Client{}
req, err := http.NewRequest("GET", url, nil)
if err != nil {
panic(err)
}
req.Header.Set("ACCEPT", "application/xhtml+xml,application/xml")
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
return string(data)
}
希望对您有所帮助。
关于xml - Golang HTTP XML 解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39815921/