StringContent Vs FormUrlEncodedContent
本文关键字:FormUrlEncodedContent Vs StringContent | 更新日期: 2023-09-27 18:34:34
我有一个URL,我想以data="blahblahblah"的形式发布一个带有参数的正文。 但是,在这种情况下,我的"blahblahblah"是一个完整的XML,我将其简化为如下所示:
<Parent id="1">
<Child id="1"/>
</Parent>
我可以使用以下方法使其与HTTPClient FormUrlEncodedContent正常工作。
var values = new List<KeyValuePair<string, string>>();
values.Add(new KeyValuePair<string, string>("data", XMLBody));
var content = new FormUrlEncodedContent(values);
HttpResponseMessage sResponse = await sClient.PostAsync(action.URL, content).ConfigureAwait(false);
现在我想让它与StringContent一起工作。 基本上将 xml 作为参数值的一部分发送,并且该 xml 包含"="。 下面的代码不起作用,因为我可以发布它,但服务器无法识别 xml 数据。 我在这里做错了什么吗?
StringContent content = new StringContent(HttpUtility.UrlEncode(action.Body), Encoding.UTF8, "application/x-www-form-urlencoded");
HttpResponseMessage sResponse = await sClient.PostAsync(action.URL, content ).ConfigureAwait(false);
我找到了它,我必须手动输入 data= 部分。
StringContent content = new StringContent("data="+ HttpUtility.UrlEncode(action.Body), Encoding.UTF8, "application/x-www-form-urlencoded");
HttpResponseMessage sResponse = await sClient.PostAsync(action.URL, content ).ConfigureAwait(false);