发送阵列发布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'
)
);
答案 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);