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

Android 使用kivy将数据发送到服务器,android,python,kivy,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',

我正在使用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)
导入urllib
从kivy.network.urlrequest导入urlrequest
已发布def错误(请求、结果):
打印('我们的错误已发布!')
打印(结果)
params=urllib.urlencode({'@number':12524,@type':'issue',
“@action”:“show'})
headers={'Content-type':'application/x-www-form-urlencoded',
“接受”:“文本/普通”}
req=UrlRequest(“:”,on_success=bug_posted,req_body=params,
请求(标题=标题)
打印请求
结果=“测试”
发布错误(请求、结果)

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

您是否为您的应用程序授予了“INTERNET”权限?您是否签入了日志(服务正在运行?您是否尝试了基于线程的urlrequest的其他功能(这在gui中很有用,可以避免阻塞,但在服务中较少)

(我仍然不明白你为什么提到dhcp服务器,你的设备仍然可以正确地访问internet,对吗?

尝试呼叫:

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()
导入urllib
从kivy.network.urlrequest导入urlrequest
已发布def错误(请求、结果):
打印('我们的错误已发布!')
打印(结果)
params=urllib.urlencode({'@number':12524,@type':'issue',
“@action”:“show'})
headers={'Content-type':'application/x-www-form-urlencoded',
“接受”:“文本/普通”}
req=UrlRequest(“:”,on_success=bug_posted,req_body=params,
请求(标题=标题)
请求等待()

如果没有它,我的请求似乎无法启动。

我不知道为什么您需要android上的dhcp服务器,这段代码是在android上运行还是在其他机器上运行?此外,如果您不同时运行kivy循环,urlrequest可能无法工作。我的主要目标是,我有一个名为test.txt的测试文件,其中包含一些内容。contentstest.txt的数量每时每刻都在增加。我想将该内容上传到我的服务器,以便我可以从服务器上看到。我这样做是因为我无法将文件发送到某个电子邮件id,而不向用户反映邮件中发送的项目。是的,但主要问题是,我需要日志文件需要返回给我。有2个选项。1.通过mail,但在此用户发送的邮箱将被填充,用户将始终知道它。2.要将流式文件的内容发送到任何服务器。你能指导我如何实现吗?你没有回答我的任何问题。如果没有任何有用的信息,我不确定如何帮助你。kivy是python,你可以使用服务中常用的网络库,你可以使用lrequest只是为了避免阻塞用户界面如果你在应用程序大小上联网,服务中不需要它。另外,在用户不知道的情况下将android日志发送到你的服务器似乎有点讨厌,我认为你需要特定的权限才能在最新版本的android中阅读该日志,请向用户说明你这样做了t、 不管你怎么做(请回答我所有的问题!)是的,我现在授予了权限,但我不知道如何才能检索android客户端上的登录?我不知道我可以通过什么方式进行检索。你能提供指导吗?你看过urlrequest吗?(kivy.network.urlrequest)它使得在kivy中进行http请求变得很容易,您可以在主体中传递数据,并在服务器端获取数据。