2013-10-11 2 views
0

Я застрял в следующей ситуации.
Я хочу отправить байты через http post, используя javascript и jQuery для сервера. Я понял, что могу отправлять байты через String.fromCharCode(...) с типом MIME application/octet-stream или text/plain; charset=x-user-definedКак отправить определенный массив байтов в javascript через HTTP POST

Но вот в чем проблема. Я должен отправить определенное количество байтов со значениями, превышающими 127. (пакет, если он обнюхается в wirehark, должен состоять, например, из 5 байтов)

Возможно ли это с помощью jQuery? Или это возможно с javascript? (например, мне нужно отправить 1 байт -> 0xAF)

Можно ли отправить этот байт, 0xAF? Или это будет всегда 2 байта, потому что значение больше 127?

+0

Мне любопытно, зачем вам это нужно. – Brad

+2

Интересно, почему вы столкнулись с проблемой. Все, что находится под '0xFF', - это один байт. В чем проблема? – VisioN

+0

Вы можете использовать ['void send (данные ArrayBuffer)'] (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest?redirectlocale=en-US&redirectslug=DOM%2FXMLHttpRequest#send()) – Musa

ответ

0

Уточнить это для тех, кто может касаться.

Запрос встроен в кадр HTTP-POST. Этот кадр, в зависимости от его типа mime, кодируется. Для любого текстового кодирования, включая приложение/октет-поток, байты преобразуются в его текстовое представление. Для значений байтов> 127 это означает, что для текстового представления это должно быть 2 байта.

В моем случае мне нужно было убедиться, что значение, например. 128 ДОЛЖЕН быть передано по 1 байт (через серверные запросы на другой протокол - modbus)

Решение должно было использовать массивный буфер, хотя это означало IE> = 10.

Смежные вопросы