RestSharp可以在POST请求中发送List <string>吗?

adr*_*nks 9 serialization json restsharp

我正在努力让RestSharp与我拥有的宁静服务一起工作.一切似乎工作得很好,除非我传递的对象POST包含一个列表(在这个特殊情况下是一个列表string).

我的目标:

public class TestObj
{
    public string Name{get;set;}
    public List<string> Children{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

当它被发送到服务器时,Children属性将作为包含内容的字符串发送System.Collections.Generic.List`1[System.String].

这是我发送对象的方式:

var client = new RestClient();
var request = new RestRequest("http://localhost", Method.PUT);

var test = new TestObj {Name = "Fred", Children = new List<string> {"Arthur", "Betty"}};
request.AddObject(test);
client.Execute<TestObj>(request);
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者这是RestSharp中的错误?(如果它有所不同,我使用的是JSON,而不是XML.)

Jos*_*off 9

这取决于您正在使用的服务器,但如果您正在使用ASP.NET Web API控制器(可能还有其他服务器端技术),那么如果您在循环中添加集合中的每个项目,它将起作用:

foreach (var child in test.Children) 
    request.AddParameter("children", x));
Run Code Online (Sandbox Code Playgroud)


Div*_*Dan 2

我对指南列表也有类似的问题。我的帖子可以工作,但列表永远不会有正确的数据。我对它进行了一些修改并使用 json.net 序列化该对象

我在另一个 stackoverflow 帖子上遇到的问题

我知道这并不完美,但确实有效