Попытка отправить довольно длинную строку в веб-сайт REST (aptrack). Я получаю следующее исключение:Как передать длинную строку в запросе HttpClient.PostAsync
Недопустимый URI: Строка Uri слишком длинная.
Мой код:
var encodedMessage = HttpUtility.UrlEncode(message);
var requestUri = string.Format("{0}{1}issue/{2}/execute?comment={3}", url, YoutrackRestUrl, issue.Id, encodedMessage);
var response = await httpClient.PostAsync(requestUri, null).ConfigureAwait(false);
Так что я взял мои шансы с FormUrlEncodedContent
var requestUri = string.Format("{0}{1}issue/{2}/execute", url, YoutrackRestUrl, issue.Id);
var postData = new List<KeyValuePair<string, string>>();
postData.Add(new KeyValuePair<string, string>("comment", message));
var content = new FormUrlEncodedContent(postData);
var response = await httpClient.PostAsync(requestUri, content).ConfigureAwait(false);
что приводит к точно такой же вопрос.
Строка (комментарий) Я отправляю, это измененный набор файлов фиксации в SVN. Который может быть действительно длинным, так что у меня действительно нет способа обойти это. Есть ли способ опубликовать контент без ограничения длины строки?
Прочитайте следующие вопросы, но не нашел там ответа:
- .NET HttpClient. How to POST string value?
- How do I set up HttpContent for my HttpClient PostAsync second parameter?
- https://psycodedeveloper.wordpress.com/2014/06/30/how-to-call-httpclient-postasync-with-a-query-string/
- http://forums.asp.net/t/2057125.aspx?Invalid+URI+The+Uri+string+is+too+long+HttpClient
Это поведение такое же, если вы только публикуете, как 1 символ в своем сообщении? – Marty
Возможно, у вас есть Youtrack api в поле комментариев. Что об этом говорит их документация по API? если есть ограничение на свойство/поле комментария - тогда - не много. Вы можете сделать это, кроме как сократить его ... – Marty
в соответствии с их документами: без ограничений. исключение происходит в строке «var content = new FormUrlEncodedContent (postData)»; – bas