Пустой ответ от веб-сервиса Django

2

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

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

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

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")
Теги:
unity3d

1 ответ

0
Лучший ответ

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

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

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

GET "/url" 200 каждый раз, когда выполняется запрос.

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

  • 0
    Я отредактировал свой вопрос и добавил код. Пожалуйста, посмотрите

Ещё вопросы

Сообщество Overcoder
Наверх
Меню