使用HttpGET的RestSharp方法AddParameter和AddQueryParameter之间的区别 [英] Difference between RestSharp methods AddParameter and AddQueryParameter using HttpGET
问题描述
我正在使用RestSharp调用外部API.
I'm using RestSharp to call an external API.
这有效:
var client = new RestClient(apiUrl);
var request = new RestRequest(myurl, Method.GET);
foreach (var param in parameters)
{
request.AddQueryParameter(param.Key, param.Value);
}
var response = client.Execute(request);
这不是:
var client = new RestClient(apiUrl);
var request = new RestRequest(myurl, Method.GET);
foreach (var param in parameters)
{
request.AddParameter(param.Key, param.Value);
}
var response = client.Execute(request);
结果:
System.Exception:API调用MyWebAPIMethod GET:失败,状态码为0-无法连接到远程服务器
System.Exception: API Call MyWebAPIMethod GET: Failed with status code 0 - Unable to connect to the remote server
AddParameter
和 AddQueryParameter
有什么区别?
根据文档,当使用HttpGET时,它们应该具有相同的功能;根据Fiddler的说法,它们似乎也生成相同的URL.
According to the documentation they should function the same when using HttpGET and according to Fiddler they seem to generate the same URL as well.
推荐答案
回答您的问题
AddQueryParameter
在查询字符串中将参数添加为 ParameterType.QueryString
,而 AddParameter(string,object)
将参数添加为ParameterType.GetOrPost
AddQueryParameter
adds a parameter in the query string as ParameterType.QueryString
whereas AddParameter(string, object)
adds the parameter as ParameterType.GetOrPost
有关每种参数类型的更多详细信息,请参见:
For more details on each parameter type, see:
GetOrPost
: https://github.com/restsharp/RestSharp/wiki/ParameterTypes-for-RestRequest#getorpost
QueryString
: https://github.com/restsharp/RestSharp/wiki/ParameterTypes-for-RestRequest#querystring
解决您的问题
似乎与参数的类型无关,因为抛出的异常似乎表明您甚至没有连接到远程服务器.
It seems it is unrelated to the type of parameter, because the exception thrown seems to indicate you aren't even connecting to the remote server.
请确保在两种情况下都传递相同的 apiUrl
/ myUrl
.
make sure you pass the same apiUrl
/ myUrl
in both cases.
这篇关于使用HttpGET的RestSharp方法AddParameter和AddQueryParameter之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!