我正在用一本书'headfirst python'进行python练习 并使用python和sl4a制作Android应用程序 我的代码是
import android
import json
import time
from urllib import urlencode
from urllib2 import urlopen
hello_msg = "Welcome to Coach Kelly's Timing App"
list_title = 'Here is your list of athletes:'
quit_msg = "Quitting Coach Kelly's App."
web_server = 'http://127.0.0.1:8080'
get_names_cgi = '/cgi-bin/generate_name.py'
def send_to_server(url, post_data=None):
if post_data:
page = urlopen(url, urlencode(post_data))
else:
page = urlopen(url)
return(page.read().decode("utf8"))
app = android.Android()
def status_update(msg, how_long=2):
app.makeToast(msg)
time.sleep(how_long)
status_update(hello_msg)
athlete_names = sorted(json.loads(send_to_server(web_server + get_names_cgi)))
app.dialogCreateAlert(list_title)
app.dialogSetSingleChoiceItems(athlete_names)
app.dialogSetPositiveButtonText('Select')
app.dialogSetNegativeButtonText('Quit')
app.dialogShow()
resp = app.dialogGetResponse().result
status_update(quit_msg)
这是我的代码,结果是
有什么问题? 我无法弄清楚问题是什么......
答案 0 :(得分:1)
使用10.0.2.2:8080
因为如果您在计算机127.0.0.1 :( port)中运行服务器和模拟器,本地IP将引用模拟器,那么您需要另一个本地IP服务器,它将自动为10.0.2.2
希望我能很好地澄清它,很高兴我帮助
答案 1 :(得分:0)
遵循@Coderji的解决方案,尽管使用不同的IP地址,我终于能够解决此问题;因为建议的10.0.2.2对我不起作用。 对我有用的是访问终端ipconfig,然后使用cmd提供的任何提供的ipv4地址(它们似乎都可以工作)。干杯。