使用包含单引号的编码字符串调用UploadValues时出现以下异常:
System.dll中出现“System.Net.WebException”类型的异常 但未在用户代码中处理
其他信息:远程服务器返回错误:(500) 内部服务器错误。
代码在ASP.NET MVC网站的以下操作中运行:
public class HomeController : Controller
{
public string Index()
{
var welcomeMessage = string.Empty;
using (var client = new WebClient())
{
var encodedName = HttpUtility.HtmlEncode("Dave's");
var nameValue = new NameValueCollection { { "name", encodedName } };
var result = client.UploadValues("http://localhost:54011/Services/GetString", nameValue);
welcomeMessage = System.Text.Encoding.UTF8.GetString(result);
}
return welcomeMessage;
}
}
GetString操作定义如下:
public class ServicesController : Controller
{
public string GetString(string name)
{
return "Hello " + name;
}
}
如果删除单引号,方法成功。如何将带引号的字符串传递给UploadValues?
答案 0 :(得分:1)
您正在使用HtmlEncode
,但该值应为网址 - 已编码,因为它将作为application / www-form-urlencoded内容上传。
请尝试使用HttpUtility.UrlEncode
。