登录
首页 >  Golang >  Go问答

如何在gomobile中发出HTTP请求

来源:stackoverflow

时间:2024-04-12 13:54:35 126浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《如何在gomobile中发出HTTP请求》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我正在尝试 gomobile,并希望在应用程序启动之前将一些数据发送到网络服务器。我正在使用 gomobile 中包含的基本示例应用程序模板。我在 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% 确定 gomobile 应用程序是否属于这种情况)。

以上就是《如何在gomobile中发出HTTP请求》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>