首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Toit --如何使用`http.Client`连接到“`localhost`”?

Toit --如何使用`http.Client`连接到“`localhost`”?
EN

Stack Overflow用户
提问于 2022-05-30 20:53:52
回答 1查看 47关注 0票数 0

我正试图在本地网络上的ESP32上测试Toit。我的笔记本电脑上运行着一个fastapi应用程序,我正在尝试运行一个GET请求。

我使用的是http包:

代码语言:javascript
复制
$ toit pkg install github.com/toitlang/pkg-http

我的代码main.py

代码语言:javascript
复制
import http
import net
import encoding.json

URL ::= "localhost:8000"
PATH ::= "/"

main:
  network := net.open
  client := http.Client network
  // The `get` method automatically closes the connection when
  // the response has been fully read.
  response := client.get URL PATH
  data := json.decode_stream response.body

  print data

但是我得到了一个错误:Connection refused

代码语言:javascript
复制
$ toit run --device <UUID> main.toit
2022-05-30T20:47:00.111752Z: <process initiated>
2022-05-30T20:47:00.384733Z: <stack trace>
EXCEPTION error.
Connection refused
  0: TcpSocket.connect         system/modules/tcp.toit:149:40
  1: TcpSocket.connect         system/modules/tcp.toit:139:12
  2: WifiNetworkInterface.tcp_connect system/components/wifi.toit:101:7
  3: NetworkInterfaceResource.tcp_connect system/components/network.toit:95:26
  4: register_network.<lambda> system/components/network.toit:26:23
  5: KernelBroker.register_descriptor_procedure.<lambda> system/kernel/rpc.toit:44:14
  6: RpcRequest_.process.<block> <sdk>/rpc/broker.toit:98:26
  7: RpcRequest_.process       <sdk>/rpc/broker.toit:95:3
  8: RpcRequestQueue_.ensure_processing_task_.<lambda>.<block>.<block> <sdk>/rpc/broker.toit:214:20
  9: RpcRequestQueue_.ensure_processing_task_.<lambda>.<block> <sdk>/rpc/broker.toit:209:9
 10: RpcRequestQueue_.ensure_processing_task_.<lambda> <sdk>/rpc/broker.toit:204:56



2022-05-30T20:47:00.518790Z: <process terminated - exit code: 1>

无论我使用localhost:8000还是127.0.0.1:8000,结果都是一样的。

我可以使用一个简单的cURL命令来命中笔记本上的端点,因此端点可以工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-30 21:01:22

toit run命令在ESP32上执行应用程序。因此,localhost指的是设备本身,而不是您的机器。

您可以尝试在您的机器上本地运行Toit程序(使用Toit:https://github.com/toitlang/toit/releases的开源版本),也可以将localhost更改为机器的IP地址。

如何获取本地计算机的IP地址取决于您的操作系统。在我的Linux机器上,我只需输入ip address

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72439938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档