如何在 HttpClient.PostAsync 请求中传递长字符串
How to pass long string in HttpClient.PostAsync request
尝试将相当长的字符串发送到 REST 网络 api (youtrack)。我收到以下异常:
无效的 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的更改文件集。这可能真的很长,所以我真的没有办法解决这个问题。有没有办法 post 没有字符串长度限制的内容?
阅读以下主题,但未找到答案:
好吧,简短的回答 - 只需将其放入正文中,而不是试图通过 URL
推送所有数据
但正如票上的作品所示 - 答案就在这里
实际问题在FormUrlEncodedContent
试试这个..将有助于 uwp..
Uri uri = new Uri("your uri string");
Windows.Web.Http.HttpClient client = new Windows.Web.Http.HttpClient();
var value1 = new System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string,string>>
{
// your key value pairs
};
var response = await client.PostAsync(uri,new HttpFormUrlEncodedContent(value1));
var result = await response.Content.ReadAsStringAsync();
尝试将相当长的字符串发送到 REST 网络 api (youtrack)。我收到以下异常:
无效的 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的更改文件集。这可能真的很长,所以我真的没有办法解决这个问题。有没有办法 post 没有字符串长度限制的内容?
阅读以下主题,但未找到答案:
好吧,简短的回答 - 只需将其放入正文中,而不是试图通过 URL
推送所有数据但正如票上的作品所示 - 答案就在这里
实际问题在FormUrlEncodedContent
试试这个..将有助于 uwp..
Uri uri = new Uri("your uri string");
Windows.Web.Http.HttpClient client = new Windows.Web.Http.HttpClient();
var value1 = new System.Collections.Generic.List<System.Collections.Generic.KeyValuePair<string,string>>
{
// your key value pairs
};
var response = await client.PostAsync(uri,new HttpFormUrlEncodedContent(value1));
var result = await response.Content.ReadAsStringAsync();