【问题标题】:How should I fix ChunkedEncodingError?我应该如何修复 ChunkedEncodingError?
【发布时间】:2016-11-09 16:44:29
【问题描述】:

我收到此错误
ChunkedEncodingError: ('Connection broken: IncompleteRead(14 bytes read)', IncompleteRead(14 bytes read))
我正在使用 python 从 Google App Engine 中的“请求”库(第 3 方)发出 POST 请求。

url = 'https://fcm.googleapis.com/fcm/send'
        body = {
            "data": {
                "title": "data:mytitle",
                "body": "data:mybody",
                "url": "data:myurl"
            },
            "notification": {
                "title": "noti:My web app name",
                "body": "noti:message",
                "content_available": "noti:true"
            },
            "message": "test",
            "registration_ids": ["xxxxxxxxxxxxxxxxxxxx"]
        }
        headers = {"Content-Type": "application/json",
                   "Authorization": "key=xxxxxxxxxxxxxxxx"}

        logging.error(json.dumps(body))
        requests.post(url, data=json.dumps(body), headers=headers)

【问题讨论】:

    标签: python google-app-engine python-requests


    【解决方案1】:

    Google App Engine 的问题是不能单独使用“requests”,我们还需要使用“requests-toolbelt”。

    第 1 步:将 requests-toolbelt 添加到 appDIR/lib
    https://cloud.google.com/appengine/docs/python/tools/using-libraries-python-27#installing_a_library


    第 2 步:在 main.py 中添加

    import requests_toolbelt.adapters.appengine
    
    requests_toolbelt.adapters.appengine.monkeypatch()
    


    这将解决问题。

    【讨论】:

    • 这是正确的。 Issuing HTTP(S) Requests 的文档解释说,包含 requests--toolbelt 可确保 requests 库使用 URL Fetch 而不是其默认的套接字。
    • 这行得通!我试图使用 gspread 阅读工作表并面临 ChunkedEncodingError 问题。现在解决了!谢谢:)
    【解决方案2】:

    我遇到了这个问题,我使用了PyFCM。一切正常。如果您愿意使用它,请确保安装 1.2.8 或更高版本。以下任何版本都会导致您遇到相同的问题

    【讨论】:

      猜你喜欢
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      • 2015-11-05
      • 2022-01-21
      • 1970-01-01
      • 2013-05-31
      相关资源
      最近更新 更多