我的程序在安装到android终端时无法访问互联网,但在linux下工作正常。 (wget(busybox)在android终端中可以正常使用互联网)
package main
import (
"io"
"io/ioutil"
"net/http"
)
func Url(url string)(string, io.ReadCloser, http.Header, error){
var c = http.Client{}
inf, err := c.Get(url)
if err == nil {
data,_ := ioutil.ReadAll(inf.Body)
return string(data), inf.Body, inf.Header, err
}
return "", nil, nil, err
}
func main() {
print("test internet... ")
c,_,_,err := Url("http://ifconfig.me/ip")
if err == nil {
println("\n ip:", c)
}else{
println("error")
}
}
编译:
go build main.go # linux
CGO_ENABLED=0 GOOS=linux GOARCH=arm go build $(bin).go # android
答案 0 :(得分:2)
Android没有/etc/resolv.conf
在代码中的某个地方,或者更可能是您导入的其中一个库,您假设是传统的Linux用户空间,而Android则不是这样。
也许“GOOS = linux”是错误的来源。
答案 1 :(得分:1)
Android尚未完全支持Go。如果在将来的某个时刻他们添加Go sdk,这将更容易。但是现在除非您想自己修改Go的源代码或者编写自己的库来处理Androids不同的环境,否则这将很难实现。