首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kivy UrlRequest

Kivy UrlRequest
EN

Stack Overflow用户
提问于 2017-12-19 12:06:59
回答 2查看 1.4K关注 0票数 1

我的API运行良好,当我使用Postman测试它时,我会看到一个200状态。不过,我正在尝试使用Kivy应用程序访问它,但在等待或退出应用程序之后,我看到了服务器的400响应。顺便说一句,在使用Postman进行测试时,我将头指定为Content-Type: application/json,在正文中我看到了参数

代码语言:javascript
复制
{
    "search_text": "Hello",
    "num_results": 1
}

作为raw数据发送。

我的代码

代码语言:javascript
复制
def search(self, search_text):
        header = {'Content-Type':'application/json'}
        req = UrlRequest('http://127.0.0.1:5000/search',req_body={"search_text": search_text,"num_results": 1},on_success=Test.got_json,req_headers=header)
        print("Search method called")


@staticmethod
def got_json(req,result):
        print(result)

Kivy docs说,您不必指定一个方法,因为这将发送一个POST请求,所以我没有在这里指定

编辑:服务器的代码与我的问题有点无关,所以我删除了它

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-19 13:20:52

UrlRequest应该作为请求体传递一个str对象。通过转储请求字典,可以将其序列化为字符串对象。将此转储字典作为请求体传递给UrlRequest

代码语言:javascript
复制
import json

req_body=json.dumps({'search_text': search_text, 'num_results': 1})
req = UrlRequest(
        'http://127.0.0.1:5000/search',
         req_body=req_body,
         on_success=Test.got_json,
         req_headers=header)
票数 4
EN

Stack Overflow用户

发布于 2017-12-19 13:21:26

req_body是一个字符串参数,可能会有点混乱,因为req_headers是个垃圾。您可以使用:

代码语言:javascript
复制
req_body=json.dumps({"search_text": search_text,"num_results": 1})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47886673

复制
相关文章

相似问题

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