繁体   English   中英

如何在restsharp中发送multipart / form-data中的2个参数?

[英]How can i send 2 parameters in multipart/form-data at restsharp?

我正在使用restsharp。 试图发送2个参数,1-yoksis_birim_id(int)

2资格:(字符串[json])。 但当我尝试我得到第一参数是空响应。 这些是我的代码; enter code here

string styleCreateUrl = "http://xxxx/service/qualificationcreate";
var client = new RestClient(styleCreateUrl);
 request.AddHeader("Postman-Token", "xxxx");
 request.AddHeader("cache-control", "no-cache");
 request.AddHeader("Content-Type", "application/json");
 request.AddParameter("Authorization", string.Format("Bearer " + token), ParameterType.HttpHeader);                    
 request.AddParameter("yoksis_birim_id", bolumid, ParameterType.RequestBody);
 request.AddParameter("qualification", bolum, ParameterType.RequestBody);

这是php中的body样本:

   $request->setBody('------WebKitFormBoundary7MA4
Content-Disposition: form-data; name="yoksis_birim_id"

xxxx
------WebKitFormBoundary7MA4
Content-Disposition: form-data; name="qualification"

{"belge_type":"","thematic_code":[],"language":{"tr_TR":{"title":"","nonpreferredterms":"","description":"","further_info":"","further_source":"","url":"","eqflevel":"","nqflevel":"","informationlang":"","sourceofinformation":"","sup_lang":"","sup_url":"","nationaloccupation":"","relation":""},"en_US":{"title":"","nonpreferredterms":"","description":"","further_info":"","further_source":"","url":"","eqflevel":"","nqflevel":"","informationlang":"","sourceofinformation":"","sup_lang":"","sup_url":"","nationaloccupation":"","relation":""}}}
------WebKitFormBoundary7MA4Y');

我发送参数作为JSON并传入[data]的对象类类型以转换为字符串。

protected static IRestResponse SendRequest<T>(string baseUrl, string requestUrl, T data)
{
    var restClient = new RestClient(baseUrl);
    var request = new RestRequest(requestUrl, Method.POST);
    request.RequestFormat = DataFormat.Json;

    var json = Newtonsoft.Json.JsonConvert.SerializeObject(data);
    request.AddParameter("application/json", json, ParameterType.RequestBody); // <-- Here
    var result = restClient.Execute(request);

    return result;
}

public static IRestResponse SendEmail()
{
    // Call The Function
    var result = SendRequest(baseUrl, urlPageToHit, emailReceiptDto);
    return result;
}

这应该适合您,您可以通过以下方式将多个参数传递给请求正文:

request.AddParameter("application/x-www-form-urlencoded", $"yoksis_birim_id={bolumid}&qualification={bolum}", ParameterType.RequestBody);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM