[英]Golang HTTP XML Parsing issue
I'm trying to access an XML file available online, but after the GET the XML format disappears. 我正在尝试访问在线提供的XML文件,但是在GET之后,XML格式消失了。
What am I doing wrong? 我究竟做错了什么?
Thank you so much! 非常感谢!
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))
}
The new format looks like this: 新格式如下:
{"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},
instead of 代替
<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>
See: https://www.whatismybrowser.com/detect/what-http-headers-is-my-browser-sending 参见: https : //www.whatismybrowser.com/detect/what-http-headers-is-my-browser-sending
Try this (and replace the web address with yours): 试试看(用您的网址替换网址):
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)
}
I hope this helps. 我希望这有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.