我有一个RestRequest,我试图转换为HttpClient获取请求.有什么方法可以按照下面的方式发送参数吗?
private readonly IRestClient _restClient;
public Type GetInfo(string name)
{
var request = new RestRequest(url, Method.GET);
request.AddParameter("name", "ivar");
var response = _restClient.ExecuteRequest(request);
return ExecuteRequest<Type>(request);
}
Run Code Online (Sandbox Code Playgroud)
dka*_*man 11
如果我没记错的话,RestSharp的AddParameter方法不会添加请求标头,而是为GET添加Uri参数或为POST请求体参数.
没有类似的方法,HttpClient因此您需要自己格式化Uri以获取GET请求.
这是一个方便的方法,它将采用字符串/对象字典并格式化Uri查询字符串.
public static string AsQueryString(this IEnumerable<KeyValuePair<string, object>> parameters)
{
if (!parameters.Any())
return "";
var builder = new StringBuilder("?");
var separator = "";
foreach (var kvp in parameters.Where(kvp => kvp.Value != null))
{
builder.AppendFormat("{0}{1}={2}", separator, WebUtility.UrlEncode(kvp.Key), WebUtility.UrlEncode(kvp.Value.ToString()));
separator = "&";
}
return builder.ToString();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15659 次 |
| 最近记录: |