您的位置:首页 > 编程语言 > PHP开发

关于golang处理PHP接口BOM头问题

2017-12-13 19:27 751 查看
func httpToPHPGet() {
resp, err := http.Get("phpApiUrl")
if err != nil {
// handle error
}

defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
// handle error
}

fmt.Println(string(body))
}


如上代码:

-{"code":"1","msg":"xxxxxx"}


你会发现如果我们打印出来前面有个:
-


因为PHP有些IDE会默认给编码加BOM头标识UTF-8编码,从而造成golang请求接口后解析错误!

那么怎么处理呢?

func httpToPHPGet() {
resp, err := http.Get("phpApiUrl")
if err != nil {
// handle error
}

defer resp.Body.Close()
resp.Body = bytes.TrimPrefix(resp.Body, []byte{239, 187, 191})
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
// handle error
}

fmt.Println(string(body))
}


加入
resp.Body = bytes.TrimPrefix(resp.Body, []byte{239, 187, 191})
,将bom头去掉就可以了.

ps:如果PHP服务端做了响应处理,请不要加上去Bom头解析
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  golang