我在django中创建了一个Web服务,并在共享服务器上托管.django Web服务响应unity中的游戏请求。但是每当游戏尝试请求django Web服务URL时,服务器都会发送空的共鸣。响应总是:
WWW错误:服务器返回空字符串
Unity网络播放器希望在您要使用WWW类访问的域上提供名为“crossdomain.xml”的http服务策略文件(尽管如果它与托管unity3d的域相同,则不需要这样做)因此,我在我的域的根目录下放置了一个文件“crossdomain.xml”,但我仍然得到同样的空回复。帮助plz ......
修改 我通过浏览器尝试了它我的服务工作正常,并回复正确的响应。你知道当我们的游戏在本地机器上运行时我的游戏可以与django web服务通信。但是现在django项目托管在实际服务器上并且当游戏尝试访问时服务从来没有得到回应:(
url.py
urlpatterns = patterns('',
url(r'^crossdomain.xml$',views.CrossDomain),
url(r'^ReadFile/$',views.ReadFile),
)
views.py
def CrossDomain(request):
f = open(settings.MEDIA_ROOT+'jsondata/crossdomain.xml', 'r')
data = f.read()
f.close()
return HttpResponse(data, mimetype="application/xml")
def ReadFile(request):
f = open(settings.MEDIA_ROOT+'jsondata/some_file.json', 'r')
data = f.read()
f.close()
return HttpResponse(data, mimetype="application/javascript")
def Test(request):
return HttpResponse("Hello", mimetype="text/plain")
答案 0 :(得分:0)
正如我所说,使用django这是一种轻微的矫枉过正,因为你可以为他们服务。尽管如此。如果您在其他服务器上提供服务,则可以
A)连接问题意味着您的响应丢失了 B)防火墙问题意味着请求意味着什么 C)服务器设置不正确,因此只会出错。
您需要在服务器上测试响应。所以你通过浏览器访问服务器上的页面。如果是,则让游戏发出请求并检查服务器错误并访问日志。在apache访问日志中,您应该看到类似
的内容每次提出请求时获取“/ url”200。
如果您没有看到任何请求通过,则请求未成功或丢失。 如果你这样做,问题出在代码中。