为了账号安全,请及时绑定邮箱和手机立即绑定

在默认浏览器中打开带有参数的 URL

在默认浏览器中打开带有参数的 URL

Go
泛舟湖上清波郎朗 2022-09-26 19:43:29
如果我们尝试从Go打开给定的URL,则非常简单,如下面的代码所示(对于mac):exec.Command("open", "https://google.com").Run()但是,如果URL具有参数,我们如何做同样的事情呢?例如,如果我们尝试打开一个Facebook登录网址:“https://www.facebook.com/v11.0/dialog/oauth?client_id=123456&redirect_uri=https://example/com”,则该命令失败,退出状态为1。即使我们为特殊字符 ?、& & 和 = 包含反斜杠也是如此。网址将更改为 。https://www.facebook.com/v11.0/dialog/oauth\?client_id\=123456\&redirect_uri\=https://example/com如果我们使用,上面的URL将在默认浏览器中打开open https://www.facebook.com/v11.0/dialog/oauth\?client_id\=123456\&redirect_uri\=https://example/com终端中的命令。但是当从Go这样做时,它会失败!有没有办法从Go做同样的事情?是的,可以使用 来完成。但这不会打开默认浏览器,这是用户最有可能登录的位置。exec.Command("open", "-a", "safari", url)
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

它实际上在没有反斜杠的情况下工作。事实证明,终端中需要反斜杠,因为终端在将字符串发送到浏览器之前在内部转义反斜杠。但是,如果发生 go,它只是将原始字符串发送到浏览器。


在 Go 中使用:


exec.Command("open", "https://www.facebook.com/v11.0/dialog/oauth?client_id=123456&redirect_uri=https://example/com")

从终端命令行:


open https://www.facebook.com/v11.0/dialog/oauth\?client_id\=123456\&redirect_uri\=https://example/com


查看完整回答
反对 回复 2022-09-26
?
MMTTMM

TA贡献1869条经验 获得超4个赞

尝试追加反斜杠(\)

exec.Command("open", "https://www.facebook.com/v11.0/dialog/oauth\\?client_id/\\=123456/\\&redirect_uri/\\=https://example/com").Run()



查看完整回答
反对 回复 2022-09-26
  • 2 回答
  • 0 关注
  • 267 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号