我正在处理一个asp.net mvc-4 web应用程序,并且我有以下方法将json对象上传到第三方应用程序。在这里我想URL标头设置为application/x-www-form-urlencoded
: -无法从'字符串'转换为'System.Collections.Specialized.NameValueCollection'
using (WebClient wc = new WebClient())
{
string url = currentURL + "resources?AUTHTOKEN=" + pmtoken;
Uri uri = new Uri(url);
wc.Headers.Add(HttpRequestHeader.ContentType, "application/x-www-form-urlencoded");
var encodedJson = WebUtility.UrlEncode(data);
crudoutput = wc.UploadValues(uri, "INPUT_DATA=" + encodedJson);
}
但上面是提高以下错误: -
无法从“字符串”转换为 “System.Collections.Specialized。的NameValueCollection”
为 最好重载方法匹配 'System.Net.WebClient.UploadValues(的System.Uri, System.Collections.Specialized.NameValueCollection)' 具有一些无效 论据
所以任何人都可以请这个请吗?
不知道为什么你正在使用这个myNameValueCollection.Add( “INPUT_DATA” ,encodedJson)..现在在我的情况下,json应该以“INPUT_DATA =”开头,所以我需要在“INPUT_DATA =”和encodedJson之间进行一次concatitation,如我的原始代码所示。 –
然后尝试'UploadString'。你问为什么你得到的错误,所有这些答案修复了 – Eonasdan
但我想使用UploadValues,因为我想指定内容类型头为应用程序/ x-www-form-urlencoded,因为我知道我不能做所以使用UploadString? –