Пустой ответ от веб-сервиса Django - PullRequest
2 голосов
/ 31 января 2012

Я создал веб-сервис в django и он размещен на общем сервере. Веб-сервис django отвечает на запрос игры, выполненной в unity . Но всякий раз, когда игра пытается запросить URL-адрес веб-службы django, сервер отправляет пустой резонанс. Ответ всегда:

WWW Ошибка: сервер возвращает пустую строку

Веб-проигрыватель Unity ожидает, что файл политики, обслуживаемый http, с именем "crossdomain.xml" будет доступен в домене, к которому вы хотите получить доступ с помощью класса WWW (хотя в этом нет необходимости, если это тот же домен, на котором размещен unity3d файл). Так что я поместил файл "crossdomain.xml" в корень моего домена, но все равно я получаю тот же пустой ответ.

EDIT: Я попробовал это через браузер, мой сервис работает нормально и отвечает с правильным ответом. И вы знаете, что Моя игра может общаться с веб-сервисом 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")

1 Ответ

0 голосов
/ 31 января 2012

Как я уже сказал, использование django для этого - небольшое излишество, потому что вы можете просто служить им. Укажи в сторону, хотя. Если вы работаете на другом сервере, это может быть

А) Проблемы с соединением означают, что ваш ответ потерян Б) Проблемы с брандмауэром означают, что запрос что-то значит C) Сервер не настроен правильно, и поэтому он получает ошибку.

Вам необходимо проверить ответ на сервере. так же вы получаете доступ к странице на сервере через ваш браузер. Если так, то сделайте игру, сделайте запрос и проверьте ошибку сервера и получите доступ к журналам. В журнале доступа Apache вы должны увидеть что-то вроде

GET "/ url" 200 при каждом запросе.

Если вы не видите, что какой-либо запрос проходит, либо запрос не выполнен, либо он потерян. Если вы это сделаете, то проблема в коде где-то.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...