Попытка отправить HTTP-запрос через сокеты - PullRequest
1 голос
/ 12 ноября 2008

У меня проблемы с отправкой простого HTTP-запроса с использованием объекта Socket () Actionscript 3. Мой слушатель onConnect ниже:

function sConnect(e:Event):void {
    trace('connected');
    s.writeUTFBytes('GET /outernet/client/rss/reddit-feeds HTTP/1.1\r\n');
    s.writeUTFBytes('Host: 208.43.71.50:8080\r\n');
    s.writeUTFBytes('Connection: Keep-alive\r\n');
    s.flush();
}

Используя анализатор пакетов, я вижу, что запрос действительно отправляется на сервер, но анализатор пакетов не идентифицирует протокол как HTTP, как это делается с другими службами HTTP. Когда я запускаю это, сервер просто в конечном итоге отключает меня. Я попытался подключиться к другим простым серверам Apache и просто получил ошибку в запросе.

Что мне здесь не хватает?

Ответы [ 5 ]

12 голосов
/ 12 ноября 2008

Вы должны записать еще один «\ r \ n» в поток перед сбросом, чтобы сообщить HTTP-серверу, что вы закончили отправку заголовков.

1 голос
/ 12 ноября 2008

Оказывается, я не отправлял пустую строку на HTTP-сервер после моего запроса. Следующий незначительный твик из оригинальной работы:

function sConnect(e:Event):void {
    trace('connected');
    s.writeUTFBytes('GET /outernet/client/rss/reddit-feeds HTTP/1.1\r\n');
    s.writeUTFBytes('Host: 208.43.71.50:8080\r\n');
    s.writeUTFBytes('Connection: Keep-alive\r\n\r\n');
    s.flush();
}

Обратите внимание на дополнительные \ r \ n после последней записи UTFBytes. В любом случае, спасибо, Брайан.

Редактировать: Спасибо, Грэм.

0 голосов
/ 05 июля 2010

Возможно неправильно, кодировка ascii не поддерживается (см. http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/charset-codes.html) - используйте us-ascii

0 голосов
/ 04 января 2009

Я просто потратил много времени на отслеживание того, что, по-видимому, является серьезной ошибкой в ​​некоторых комбинациях Flash 10 и Linux с writeMultiByte (). Я был бы очень сомнителен с использованием writeMultiByte ().

Надеюсь, это поможет вам.

0 голосов
/ 12 ноября 2008

Вместо использования UTF, попробуйте с ANSI / ASCII. Причиной проблемы может быть кодировка.

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