我正在尝试移动,并希望在应用程序启动前发送一些数据到web服务器。我使用的基本示例应用程序模板包括在移动。我在main:
开头添加了代码func main() {
client := &http.Client{}
req, _ := http.NewRequest("GET", "X.X.X.X:8000/log", strings.NewReader("TEST"))
client.Do(req)
app.Main(func(a app.App) {
...
}
....
}
应用程序启动时立即崩溃。我确信我在GET请求中使用了正确的IP。
HTTP请求的方式有什么问题吗?
(我在Android上测试)
http.NewRequest
可能返回错误,因为您的URL不包括方案(http
/https
),因此无效。修改"X.X.X.X:8000/log"
为"http://X.X.X.X:8000/log"
你也应该处理错误,即使它只是一个调用panic
,因为它会告诉你什么是错误的。
func main() {
client := &http.Client{}
req, err := http.NewRequest("GET", "http://X.X.X.X:8000/log", strings.NewReader("TEST"))
if err != nil {
panic(err)
}
_, err = client.Do(req)
if err != nil {
panic(err)
}
app.Main(func(a app.App) {
...
}
....
}
同样,当在android上测试时,你的恐慌很可能会在系统日志中结束,你可以看到adb logcat
(不能100%确定这是否适用于移动应用程序)。