代码之家  ›  专栏  ›  技术社区  ›  Kellen Stuart Alan

RestSharp-Does。AddParameter为POST请求添加标题或正文?

  •  0
  • Kellen Stuart Alan  · 技术社区  · 5 年前

    试图确定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 回复  |  直到 5 年前
        1
  •  1
  •   Matt Stannett    5 年前

    RestSharp提供了一个单独的 AddHeader 将数据添加到请求头的方法,如中的示例所示 readme .

    this answer AddParameter 将使用 GetOrPost 类型,如果是GET请求,它将添加查询参数;如果是POST请求,它将向请求体添加项。

    来源 添加参数 方法,在该方法中,您可以提供一个参数名和一个可用的参数值 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 随着 the documentation 关于这些 HttpHeader 处理参数类型。