关于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头解析
相关文章推荐
- 关于接口返回BOM头处理的问题
- [z]关于php文件中的BOM字符处理
- 关于PHP的Session处理的问题
- 关于 php 调用 其他语言写的Web Service SOAP 接口的参数传递问题
- 关于PHP处理JAVA过来的接口和PHP返回给Javascript的JSON字符串
- 关于php 接口问题(php接口主要也就是运用curl,curl函数)
- 关于http接口开发中json格式数据编码问题处理
- 关于php和C语言接口的结构传递问题,udp,tcp通信
- 关于SSM框架整合Spring与Mybaitis面向接口编程时,多个不同包别名设置,多个dao层包通配符表达处理问题
- 关于PHP写APP接口的安全问题探讨(一)
- [原]几种流行php编辑器对utf-8编码 bom问题的处理比较
- 关于微信支付退款接口问题 PHP版
- 关于PHP写APP接口的安全问题探讨(一)
- 关于处理PHP json_encode返回的json数据一些小问题
- 关于php 接口问题(php接口主要也就是运用curl,curl函数)
- 关于php和C语言接口的结构传递问题,udp,tcp通信
- php头部空行|utf8头部空行|关于bom以及utf-8的问题
- 关于php接口中命名空间报错问题:
- 浏览器处理由带BOM的utf-8格式的php文件输出的HTML问题
- 关于bom,以及和bom有关的PHP验证码出不来的问题