【问题标题】:Empty reply from Django web service来自 Django Web 服务的空回复
【发布时间】:2012-02-22 23:56:26
【问题描述】:

我在 django 中创建了一个 web 服务,并将其托管在共享服务器上。django web 服务响应来自unity 制作的游戏的请求。但是每当游戏尝试请求 django Web 服务 url 时,服务器都会发送空的响应。响应总是:

WWW 错误:服务器返回空字符串

Unity webplayer 期望一个名为“crossdomain.xml”的 http 服务策略文件在您想要使用 WWW 类访问的域上可用,(尽管如果它与托管 unity3d 的域相同,则不需要这样做文件)。所以我在我的域的根目录下放置了一个文件“crossdomain.xml”,但我仍然得到相同的空回复。请帮助...

编辑: 我通过浏览器尝试了它,我的服务工作正常并以正确的响应进行回复。而且你知道我的游戏在本地机器上运行时可以与 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")

【问题讨论】:

    标签: python django apache unity3d


    【解决方案1】:

    正如我所说,为此使用 django 有点矫枉过正,因为您可以为它们服务。点一边。如果您在不同的服务器上提供服务,则可能是

    A) 连接问题意味着您的响应丢失 B)防火墙问题意味着请求意味着什么 C) 服务器没有正确设置,因此它只是得到一个错误。

    您需要在服务器上测试响应。您也可以通过浏览器访问服务器上的页面。如果是这样,那么让游戏发出请求并检查服务器错误和访问日志。在 apache 访问日志中,您应该会看到类似

    的内容

    每次发出请求时获取“/url”200。

    如果您没有看到任何请求通过,则说明请求未发出或丢失。 如果你这样做了,那么问题就出在代码的某个地方。

    【讨论】:

      猜你喜欢
      • 2015-07-16
      • 1970-01-01
      • 2012-08-10
      • 2015-12-20
      • 2017-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多