使用kivy将数据发送到服务器

时间:2013-12-21 14:29:28

标签: android python kivy

我正在使用kivy创建一个应用程序。我在我的android上安装了简单的dhcp服务器。

import urllib
from kivy.network.urlrequest import UrlRequest

def bug_posted(req, result):
    print('Our bug is posted !')
    print(result)

params = urllib.urlencode({'@number': 12524, '@type': 'issue',
'@action': 'show'})
headers = {'Content-type': 'application/x-www-form-urlencoded',
      'Accept': 'text/plain'}
req = UrlRequest('<ip>:<port>', on_success=bug_posted, req_body=params,
    req_headers=headers)
print req

result = "test"
bug_posted(req, result)

但是,当我运行此代码时,它不会记录在我的服务器中。我该如何登录我的服务器?

2 个答案:

答案 0 :(得分:2)

您是否对您的应用授予了“INTERNET”权限?您是否签入了日志(该服务正在运行?您是否尝试过其他基于线程的urlrequest(在gui中有用以避免阻塞,但在服务中更少)?

(我仍然不明白为什么你提到dhcp服务器,你的设备仍能正常访问互联网,对吗?)

答案 1 :(得分:1)

尝试致电:

req.wait()

靠近代码的末尾

import urllib
from kivy.network.urlrequest import UrlRequest

def bug_posted(req, result):
    print('Our bug is posted !')
    print(result)

params = urllib.urlencode({'@number': 12524, '@type': 'issue',
'@action': 'show'})
headers = {'Content-type': 'application/x-www-form-urlencoded',
      'Accept': 'text/plain'}
req = UrlRequest('<ip>:<port>', on_success=bug_posted, req_body=params,
    req_headers=headers)
req.wait()
没有它,请求似乎不适合我。