python - 来自 Django Web 服务的空回复

标签 python django apache unity3d

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

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

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

编辑: 我通过浏览器尝试过我的服务工作正常并回复正确的响应。你知道当两者都在本地机器上运行时我的游戏可以与 django 网络服务通信。但现在 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")

最佳答案

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

A) 连接问题意味着您的响应丢失 B)防火墙问题意味着请求意味着什么 C) 服务器设置不正确,因此会出现错误。

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

的内容

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

如果您没有看到任何请求通过,则说明该请求未发出或已丢失。 如果这样做,则问题出在代码中的某处。

关于python - 来自 Django Web 服务的空回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9076584/

相关文章:

linux - Apache2 无法启动

python - 如何将 PNG 图像转换为边界(对于圆)[pygame]?

python - 脉冲宽度读取器每次打印相同的值

python - 高效更新 Pandas sql

jquery - 在单击 prev 按钮时使用 django View 更新 jquery fullcalendar 中的事件

python - 如何在 Django 中连接来自不同应用程序的模型?

python - 在扭曲中使用 pymongo 究竟有什么问题?

python - 如何通过外键访问模型的 __str__ 方法?

apache - 当 Icecast 在代理后面工作时,如何在 Icecast 统计信息中查看正确的客户端 IP

asp.net - CruiseControl.Net 仪表板 + Apache