2011-04-29 2 views
1

EDIT: Я использовал скопированный код из другого проекта, который был слишком сложным ... К счастью выходные не за горами.HttpWebRequest - скобки не разрешены в POST

** * **Оригинальный вопрос* ** * ** * ** * ** *

Я m в настоящее время обертывает внешний API-шлюз SMS-шлюза для внутреннего использования - внешний API требует, чтобы сообщение mu ltiple получателей использует следующий синтаксис:

HTTP: // (smsgateway)/имя пользователя = Foo & пасс = бар & от = Myname & получателя [] = 4512345678 & получателя [] = 4587654321 & ...

Это отлично подходит для запросов GET, но я предпочел бы ПОСТИТЬ к шлюзу, чтобы избежать проблем с очень большими URL-адресами. хотя HTTP 1.1 явно не ограничивает клиентов отправкой запросов с очень длинными URL-адресами на сервер.

Проблема здесь в том, что я не разрешено использовать имя параметра формы, содержащее скобки, если я использую HttpWebRequest в .NET 4. Я получаю следующее сообщение об ошибке: «Указанное значение имеет символы недопустимые HTTP Header»

Мой вопрос: я не смог найти ничего в спецификации HTTP 1.1 относительно недопустимых символов в именах параметров формы, поэтому почему мне не разрешено использовать имя параметра формы, называемое «получатели []»?

ответ

2

Как вы отправляете запрос POST? HTTP не заботится о параметрах формы POST, потому что они отправляются в тело запроса (с соответствующей кодировкой содержимого).

+0

Ошибка при добавлении в коллекцию форм: webRequest.Headers.Add ("получатели []", "somevalue"); – kerbou

+0

Это не то, как работают запросы POST - параметры формы не отправляются в заголовках запроса. Они отправляются в орган запроса. – hrnt

+0

Вот что нашел быстрый поиск в Google, обратите внимание, как отправляется postData: http://www.netomatix.com/httppostdata.aspx – hrnt

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