RestSharp - .AddParameter 是否添加到 Header 或 Body 以获得 POST 请求?
RestSharp - Does .AddParameter add to the Header or the Body for a POST request?
正在尝试确定 RestSharp 的 AddParameter
方法是否将参数添加到方法 POST
请求的 body 或 header 中。
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);
如果它在 header 中发送,我们的 API 调用将开始失败,因为即将对 API 提供商进行更改。
我如何确定这一点?
RestSharp 提供了一个单独的 AddHeader
方法来向请求 headers 添加数据,如 readme.
中的示例所示
根据this answer AddParameter
will add the parameter with the GetOrPost
类型,如果是GET请求会添加查询参数,如果是POST请求会向请求body添加item
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));
作为额外信息,AddHeader
方法的源代码可用 here, along with the documentation 关于如何处理这些 HttpHeader
参数类型。
正在尝试确定 RestSharp 的 AddParameter
方法是否将参数添加到方法 POST
请求的 body 或 header 中。
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);
如果它在 header 中发送,我们的 API 调用将开始失败,因为即将对 API 提供商进行更改。
我如何确定这一点?
RestSharp 提供了一个单独的 AddHeader
方法来向请求 headers 添加数据,如 readme.
根据this answer AddParameter
will add the parameter with the GetOrPost
类型,如果是GET请求会添加查询参数,如果是POST请求会向请求body添加item
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));
作为额外信息,AddHeader
方法的源代码可用 here, along with the documentation 关于如何处理这些 HttpHeader
参数类型。