【问题标题】:Kivy UrlRequest with https带有 https 的 Kivy UrlRequest
【发布时间】:2019-05-01 22:53:00
【问题描述】:

我正在尝试获取 Python 3.7 Kivy 代码以使用 UrlRequest 检索 https 网络数据。代码适用于 http,但是当我将 url 更改为任何 https 时,我没有得到任何数据。当我使用 http 或 https 编译和运行时,两者都运行没有错误。我需要添加一个导入来使 https 工作吗?这是测试代码。谢谢。

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout

from kivy.network.urlrequest import UrlRequest
from functools import partial

class MainApp(App):
    def build(self):
        grid = GridLayout(cols=1)
        button1 = Button(text="Press to say Hello", 
        on_release=self.run_Hello)
        button2 = Button(text="Kivy UrlRequest", 
        on_release=self.run_UrlRequests)
        blank_button = Button(text="Click me!")
        grid.add_widget(button1)
        grid.add_widget(button2)
        grid.add_widget(blank_button)
        return grid

def run_Hello(self, *args):
    print("Hello")


def run_UrlRequests(self, *args):
    for i in range(10):
        self.r = UrlRequest("https://www.google.com", verify=False, 
    on_success=partial(self.update_label, i), 
    on_error=partial(self.error_label, i))

def update_label(self, i, *args):
    print(i)
    print("success")
    print(self.r.result)

def error_label(self, i, *args):
    print("failed")
    print(i)
    print(self.r.result)

MainApp().run()

【问题讨论】:

  • 向我们展示你到目前为止所做的事情

标签: python-3.x https kivy urlrequest


【解决方案1】:
def run_UrlRequests(self, *args):
    for i in range(10):
    self.r = UrlRequest("https://www.google.com", verify=False, 
    on_success=partial(self.update_label, i), on_error=partial(self.error_label, i)) 

我在 UrlRequest 之后添加了 verify=False,也在原始代码中。代码运行并生成 html 数据的打印语句。虽然这解决了 https 问题,但我不知道这个明显的 SSL 问题是否已得到正确解决。

【讨论】:

  • 我最近从 Python2 切换到 Python3 并遇到了类似的错误。对我来说,根本问题是 UrlRequest 不知道属性 CA 文件在哪里。为了解决它,我导入了证书模块import certifi,然后通过了ca_file=certifi.where()。一个普通的requests.get 正在使用https,但不是Kivy 的UrlRequest,不知道为什么。使用verify=False 有一点安全风险。
  • 这解决了这个问题。无法在任何地方找到它的文档。谢谢!!顺便说一句:享受您的 Kivy 视频。
  • 我也做不到,我花了很长时间才弄明白。也许我会专门制作一个教程或发布它哈哈!感谢您的支持!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多