xml - Golang HTTP XML 解析问题

标签 xml http parsing go

我正在尝试访问在线可用的 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/

相关文章:

apache - 有人可以查看网络服务器文件夹吗?

vb.net - VB.NET 中的 NDESK 命令行解析

javascript - 从 CSV 文件中解析\r 字符串

java - 如何在 ant taskdef 操作的整个执行过程中拥有单例类的一个实例

java - 从操作栏菜单项捕获用户输入

ruby-on-rails - 哈希 xml 解析为 json 显示没有有效的根

http - 仅允许 Nancy 在接受 header 为 html 时返回 json 或 Xml 和 406

java - 在浏览器中打开远程html文件

python - 在 Python 中使用 Selenium 解析 HTML5 data-* 属性值

java.lang.IllegalArgumentException : Not supported: indent-number 异常