在 .replace 方法的 Python pyngrok 错误中
Posted
技术标签:
【中文标题】在 .replace 方法的 Python pyngrok 错误中【英文标题】:In Python pyngrok error for .replace method 【发布时间】:2021-03-18 21:14:33 【问题描述】:我在这一行得到一个错误:
link = ngrok.connect(4040,"http").replace("http","https")
错误:
“NgrokTunnel”实例没有“替换”成员
【问题讨论】:
ngrok.connect(4040,"http")
是字符串吗?它输出什么?
我想在端口 4040 上建立一个服务器,并通过 ngrok 在端口上建立一个链接,当在链接中看到 http 更改为 https
【参考方案1】:
我已经测试过了。
您的link
不是字符串。您必须将其转换为字符串才能替换文本。
这适用于函数 str()。
link = str(ngrok.connect()).replace("http", "https")
【讨论】:
很高兴听到,您能验证我的回答吗?【参考方案2】:接受的答案并不完全正确,因为当您想要的字符串只是 https://<public_sub>.ngrok.io
部分时,您最终会得到的字符串是 [<NgrokTunnel: "https://<public_sub>.ngrok.io" -> "http://localhost:80">]
。
NgrokTunnel
object 有一个public_url
属性,这是你想要的,所以这样做:
link = ngrok.connect(4040, "http").public_url.replace("http","https")
此外,如果您甚至不需要打开 http
端口,只需打开单个隧道即可为您提供 https
链接,无需操作字符串:
link = ngrok.connect(4040, bind_tls=True).public_url
值得注意的是,如果您使用的是older version of pyngrok
(pre-5.0.0 release),则接受的答案将起作用。
【讨论】:
以上是关于在 .replace 方法的 Python pyngrok 错误中的主要内容,如果未能解决你的问题,请参考以下文章
在 .replace 方法的 Python pyngrok 错误中
python中的列表是不是有类似.replace()的方法? [复制]