我需要将一个参数传递给HttpRequest(POST)。
假设我们有' someParam '参数,我们需要通过' 某些+值'值。
使用 request.AddParameter(" someParam","某些+值"); 时 - 值会自动转换为' 一些%2Bvalue '并在请求中看起来像 someparam = some%2Bvalue '。但该应用程序只能理解 + 。
有什么方法可以为请求添加参数但不编码吗???
答案 0 :(得分:1)
在服务器端应该是某些%2Bvalue'解码为"某些+值"。如果不是,更好的解决方案是将值分隔为:
request.AddParameter("someParam", "some");
request.AddParameter("someParamValue", "value");
在服务器端,只需根据需要将参数解析为some+value
。
另一种解决方法是替换字符串"%2"用" +"。但仍然是分离价值观的更好方法。
GET的可能解决方法:
string resource = "something";
var client = new RestClient(baseurl+ resource +"?"+"someParam"+"="+"some+value");
var request = new RestRequest(resource, method);
IRestResponse<T> response = client.Execute<T>(request);
return response.Data;
所以你必须自己编写网址并提供整体请求。
答案 1 :(得分:0)
您可以使用:
System.Web.HttpUtility.UrlDecode
例如:
var url = getUrlFromConfig();
var params = HttpUtility.UrlDecode("$foo/bar?someParam={some}&someParamValue={value}");
var client = new RestClient(apiUrl + params);
这将生成一个有效的URL,而不会出现您的问题。