URLRequest выдает ошибку потока (403 Forbidden)

Я пытаюсь сделать http-запрос с помощью urlloader и urlrequest в формате as3. Это дает ошибку ошибки потока 2032, потому что веб-сайт не разрешает URL-запросы от Flash?

В любом случае, почему это произошло? Как я могу «обмануть» веб-сайт, чтобы просто подумать, что это обычный запрос, сделанный из браузера (firefox, chrome)?

        var loader:URLLoader = new URLLoader();
        var request:URLRequest = new URLRequest("http://www.travian.com");

        loader.addEventListener(Event.COMPLETE, on_complete);
        loader.load(request);

РЕДАКТИРОВАТЬ: я пытаюсь спросить... Как веб-сайт узнает, что это http-запрос от Adobe Air? И как мне сделать так, чтобы это выглядело как http-запрос от Firefox/Chrome или чего-то еще.


person user3151165    schedule 27.01.2014    source источник
comment
какой URL вы нажимаете? вы можете попробовать с другим URL-адресом, например stackoverflow.com?   -  person mika    schedule 27.01.2014
comment
URL-адрес такой же, как в примере кода, который я дал. travian.com. Stackoverflow.com работал как надо. Но я знаю, что этот веб-сайт (который является игрой) travian.com попытается заблокировать такие вещи, чтобы предотвратить ботов/мошенничество. Вы также не можете получить веб-сайт в iframe. Я думаю, что мой вопрос носит более общий характер, чем просто as3, больше: как веб-сайт узнает, что это запрос от программы Adobe Air. И как скрыть эту информацию.   -  person user3151165    schedule 27.01.2014
comment
Хорошо, я поиграл с Modify Headers для Firefox и Wireshark. Это: Referer: app:/Travian.swf ‹-- Заголовок приводит к сбою. Почитайте, и кажется, что as3 не может изменить некоторые конкретные заголовки и не удалить их... Думаю, тогда я не могу выполнить свой проект?   -  person user3151165    schedule 27.01.2014
comment
Да, вы можете установить собственные заголовки в AS3, какая часть блокирует запрос? Для меня это больше похоже на проблему с конфигурацией сервера, чем на остановку флэш-памяти.   -  person mika    schedule 27.01.2014
comment
Я бы предложил заглянуть в crossdomain.xml, но так как сервер отвечает 403, я бы обязательно заглянул в конфиг сервера   -  person mika    schedule 27.01.2014
comment
Никакая AS3 не может модифицировать все заголовки, некоторые из них запрещены. Заголовок Referer делает это, а тот, похоже, забанен и не может быть изменен. 403 Forbidden Запрос запрещен административными правилами. это сообщение... Что такое crossdomain.xml?   -  person user3151165    schedule 27.01.2014
comment
Используя класс сокета, вы можете создать свой собственный загрузчик. С классом сокета вы можете написать любой заголовок, какой захотите. Однако это, скорее всего, не ваша проблема. Вам отказывают, потому что запрос не аутентифицирован.   -  person The_asMan    schedule 11.02.2014


Ответы (1)


Добавьте файл с именем crossdomain.xml в корень общедоступного каталога на вашем сервере.

Он должен указывать здесь: http://www.travian.com/crossdomain.xml.

И должен содержать следующее:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="master-only" />
  <allow-access-from domain="*" secure="false" />
  <allow-http-request-headers-from domain="*" headers="*" />
</cross-domain-policy>
person mika    schedule 27.01.2014
comment
У меня нет большого понимания этого, но... Веб-сайт Travian.com блокирует любого, кто заходит на сайт с реферером в http-заголовке. Можно ли обойти это с помощью решения, которое вы написали? - person user3151165; 27.01.2014
comment
Я думаю, вам нужно заглянуть в конфигурацию сервера - здесь я мало чем могу помочь. - person mika; 27.01.2014