请求挂起获取

2024-04-26 18:45:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图运行一个UrlRequest,而Kivy似乎不想返回。它一直挂起,直到我强制退出应用程序。我可以通过Rested运行相同的查询,并且可以验证URL/头是否正确

我是新来的Mac OS,它被防火墙阻止了吗?有日志我可以查吗

代码

server_headers = {'Authorization': 'Bearer ' + str(self.hass_server_token), 'content-type': 'application/json'}                
request = UrlRequest(str(self.hass_server_url) + ':' + str(self.hass_server_port) + '/api/states', req_headers= server_headers, verify=False)
while not request.is_finished:
    Clock.tick()
self.hass_all_states = request.result

谢谢


Tags: self应用程序urlserverosrequestmacheaders
1条回答
网友
1楼 · 发布于 2024-04-26 18:45:23

默认情况下,Kivy的UrlRequest是线程化的。这意味着您需要为请求成功完成时指定回调函数。它在后台运行,因此它不会阻止应用程序正在执行的任何其他操作,这就是为什么您必须在UrlRequest调用中指定回调函数,以便它知道在执行时要做什么。为此,请将回调函数的名称传递给on_success中的UrlRequest参数。类似地,可以为on_erroron_failure指定回调函数

示例:

def success_callback(self, *args):
    print(args)

随后在代码中:

UrlRequest('some_server_url', on_success=self.success_callback)

(您不需要像以前那样为UrlRequest赋值变量)

相关问题 更多 >