RestSharp数组请求

时间:2015-01-20 08:16:03

标签: c# .net json restsharp

发送阵列发布RestSharp?  字典,列表<>是不兼容?

public class Test
{
    public string key { get; set; }
    public string viewType { get; set; }
    public string module { get; set; }
    public string method { get; set; }

    public Dictionary<string, string> parameters { get; set; }
}

我的班级初学。

Test t = new Test();

            t.key = "xxxxxxxxxxxxxxxxxx";
            t.viewType = "json";
            t.module = "test";
            t.method = "test";

            t.parameters = new Dictionary<string,string>();
            t.parameters.Add("p1", "data1");

发送数据请求

 IRestResponse response = restClient.Execute<Test>(restRequest);

发送是debbuger:

[JSON]
  -request
       module: "test"
       method: "test"
       parameters:"System.Collections.Generic.Dictionary`2[System.String,System.String]"

RestSharp创建谁? ?发送数组选项对象?

$postData = array(
  'key' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'viewType' => 'json',
  'module' => 'test',
  'method' => 'test',
  [options] => stdClass Object
  (
    [name] => 'ADIDAS'
  )
);

2 个答案:

答案 0 :(得分:2)

我在文档中找到了这个:

  

要将对象的所有属性添加为参数,请使用AddObject()。至   添加文件进行上传,使用AddFile()(请求将作为   多部分编码形式)。要包含请求正文(如XML或JSON),   使用AddBody();

因为您使用restRequest.AddObject(),RestSharp使用t.parameters.ToString()的值而不是序列化为JSON。

修复:改为使用restRequest.AddBody(t)。您还必须指定内容类型。

request.RequestFormat = DataFormat.Json;
request.AddBody(t);

答案 1 :(得分:0)

RestClient restClient = new RestClient("https:");

            RestRequest restRequest = new RestRequest(Method.POST);

            Test t = new Test();

            t.key = ac.Password;
            t.viewType = "json";
            t.module = "hello";
            t.method = "hello";

            t.parameters = new Dictionary<string,string>();
            t.parameters.Add("wddwdw", "ddd");


            restRequest.AddObject(t);

 IRestResponse response = restClient.Execute<Test>(restRequest);