4

问题:如何让游戏运行 requests.post 以发布 url?

基本上,我目前正在做一个项目,可以将游戏期间的选择发送到我所做的网站,这样我就可以跟踪玩家做出了什么样的选择。该网站是完整的,我已经用一个单独的python程序对其进行了测试,它工作得非常好,使用以下两行代码:

import requests
con = requests.post("http://localhost:8080/update?/checkingChL")

这将触发我网站的数据库发生变化,这将清楚地显示在网站上,因此如果我使用单独的 python 文件,代码可以正常工作。但看起来 Ren'Py 并没有像我希望的那样接受它……

我做过的事情: 尝试 1:下载 Python 模块,如下所示 - https://www.renpy.org/doc/html/python.htm

安装请求后,我从 Ren'Py 启动项目并打开开发者控制台,然后输入:

import requests

但我得到的回应是:

ImportError: No module named cgi

所以那是不行的。如前所述,我对Python还是新手,所以我做了一些谷歌搜索并尝试了下一次尝试......

尝试 2:安装 renpy-requests,如下所示 - https://github.com/renpytom/renpy-requests

在尝试 1 之前使用新版本的游戏,我已经下载了文件并完全按照说明中的说明进行操作。这次我比上次更进一步:

import requests
con = requests.post("http://localhost:8080/update?/checkingChL")
LookUpError: unknown encoding:idna

同样,如您所见,错误仍在继续。

我尝试将 cgi 和编码导入游戏,但也没有运气...... :(

我忽略了错误消息并将代码无论如何都粘贴到了游戏中,当它在正确的时刻触发时......才发现网站根本没有发生任何事情......

显然,我的游戏中缺少一些东西,但我现在没有想法......

4

1 回答 1

0

我不确定 Ren'Py 是否完全支持 Requests 模块。如果您不发送敏感信息,则可以使用它。

这是使用由 Re'nPy 的创建者 Tom 创建的请求的 github 示例的链接。 https://github.com/renpytom/renpy-requests

我在我的游戏中使用 urllib 和 urllib2。

import urllib
import urllib2

url = "http://........."
opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1))
data = urllib.urlencode({'name' : playerName,'score' : playerScore})
userList = str(opener.open(url, data=data).read())

编辑 11/21/2021:模块 Requests 现在默认包含在 Ren'Py 中。

于 2019-07-16T13:37:45.217 回答