Альтернативой методу GET является метод POST. Этот метод упаковывает пары имя / значение внутри тела HTTP-запроса, что обеспечивает более чистый URL-адрес и не накладывает ограничений на размер выходных данных форм. Это также более безопасно ".

тирую несколько различных публичных API RESTful, каждый из которых отличается по имени значения аргумента http, но в принципе все работает одинаково. Однако ни одна из компаний не связана, так что это должно быть что-то с моей стороны.

В .NET я получаю следующую ошибку при попытке получить HttpWebResponse:

Сообщение: «Сервер совершил нарушение протокола. Раздел = ResponseStatusLine»
Статус: ServerProtocolViolation {11}

Используя Fiddler, я обнаружил, что возвращающиеся заголовки не существуют, и это является причиной проблемы (даже не присутствующей и неправильно отформатированной):

HTTP / 1.0 200 Этот глючный сервер не вернул заголовки

Параметр, который я отправляю, - это длинная текстовая новостная статья. Я разделиВСЕ притворство, персонажи и т.д.только что чтобы убедиться, что ничто не мешает. Я строю текст, используя StringBuilder, а затем создаю URI, как показано ниже:

Dim sb As New StringBuilder
sb.Append("&apiKey=" + HttpUtility.UrlEncode("123456789"))
sb.Append("&inputText=" + HttpUtility.UrlEncode(Me.MyTestText))
Dim ApiHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(New Uri(BaseRequestURL + sb.ToString.Trim())), HttpWebRequest)
Dim ApiHttpWebResponse As HttpWebResponse = CType(ApiHttpWebRequest.GetResponse(), HttpWebResponse)

Этот кодДЕЛАЕТ работать с большей частью текста, который я отправляю. Интересная вещь, которую я нахожу, состоит в том, что, если я сокращаю текст, который я посылаю, тогда это работает! Я не могу понятьименно так тройник или точка разрыва. Значения строителей строк расширяются после запуска функции HttpUtility.UrlEncode. Однако размер текста составляет всего около 5-8 килобайт, что значительно ниже ограничений по размеру, установленных в настройках «httpWebRequest» .config, изложенных в MSDN.или же с помощью любого из API, которые я использую (например, 1 ограничение - 150 килобайт текста). Я даже попытался установить все эти значения на «-1» в web.config, что означает:«Значение -1 указывает, что ограничение размера не будет налагаться на заголовки ответа».

Есть ли ограничение на размер значения аргумента http или что-то еще, что я пропускаю, что могло бы вызвать это? Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос