0

尝试确定 RestSharp 的AddParameter方法是否将参数添加到 Method 请求的正文或标头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 提供程序而开始失败。

我如何确定这一点?

4

1 回答 1

1

RestSharp 提供了一种将数据添加到请求标头的单独方法,如自述AddHeader文件中的示例所示。

根据this answer AddParameter将添加带有GetOrPost类型的参数,如果是GET请求,它将添加查询参数,如果是POST请求,则将项目添加到请求正文中。

AddParameter您提供参数名称和参数值的方法的来源在此处可用,您可以看到传入的类型是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方法的来源可在此处获得,以及有关如何处理这些参数类型的文档。HttpHeader

于 2019-07-17T20:52:50.493 回答