尝试确定RestSharp的AddParameter
方法是否将参数添加到方法POST
的请求的正文或标题中。
var request = new RestRequest("/token", Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddParameter("grant_type", "password");
request.AddParameter("client_id", client_id);
request.AddParameter("client_secret", client_secret);
request.AddParameter("username", username);
request.AddParameter("password", password);
如果发送了标头,由于即将更改API提供程序,我们的API调用将开始失败。
我该如何确定?
答案 0 :(得分:1)
RestSharp提供了一种单独的AddHeader
方法,用于将数据添加到请求标头,如readme中的示例所示。
根据this answer AddParameter
将添加类型为GetOrPost
的参数,如果是GET请求,它将添加查询参数,如果是GET请求,则将添加项到请求正文中POST请求。
AddParameter
方法的源,其中您提供了一个参数名称,并且参数值可用here,并且您可以看到传入的类型为ParameterType.GetOrPost
。
对于后代,当前来源是:
/// <summary>
/// Add the parameter to the request
/// </summary>
/// <param name="p">Parameter to add</param>
/// <returns></returns>
public IRestRequest AddParameter(Parameter p) => this.With(x => x.Parameters.Add(p));
/// <summary>
/// Adds a HTTP parameter to the request (QueryString for GET, DELETE, OPTIONS and HEAD; Encoded form for POST and PUT)
/// </summary>
/// <param name="name">Name of the parameter</param>
/// <param name="value">Value of the parameter</param>
/// <returns>This request</returns>
public IRestRequest AddParameter(string name, object value)
=> AddParameter(new Parameter(name, value, ParameterType.GetOrPost));
作为额外的信息,here提供了the documentation方法的源,以及{{3}}关于如何处理这些AddHeader
参数类型的信息。