RestSharp android上传多行

时间:2016-09-19 10:33:55

标签: c# android rest xamarin restsharp

我可以非常好地使用RestSharp发送“单行”内容,例如:

“用户,密码,电子邮件,电话......”

但我无法理解如何发送多行,例如,此表中的所有值:

+-----------+-----------+-------+
|    Dog    |   Race    | user  |
+-----------+-----------+-------+
| Skitty    | Doberman  | User1 |
| Birillo   | Pinscher  | User2 |
| Fragolino | Corgi     | User3 |
| ...       | ...       | ...   |
+-----------+-----------+-------+

我如何格式化restsharp的参数?

由于

编辑:按照要求我展示如何发送“正常”数据:

我从EditText中的用户输入中获取数据(比如,string1,string2,string3),并将它们发送到我用于RestSharp的类,然后我发送它们:

var client = new RestClient("x.x.x.x/app/");
var request = new RestRequest("/ServiceX", Method.POST);
request.AddParameter("Dog", string1);
request.AddParameter("Race", string2);
request.AddParameter("User", string3);
IRestResponse response = client.Execute(request);
var content = response.Content;

这是表中的一行,我只能以这种方式为每个请求添加一行。但我想上传更多行。

由于

2 个答案:

答案 0 :(得分:1)

试试这个。 JsonHelper 1.0.2您可以通过NuGet或here

下载
           public class YourModel
            {
                public string Doggy { get; set; }
                public string Race { get; set; }
                public string User { get; set; }

            }
            public YourModel nYModel = new YourModel();
            nYModel.Doggy = string1;
            nYModel.Race  = string2;
            nYModel.User = string3;

    var client = new RestClient(ServiceUrl);

    var request = new RestRequest("/resource/", Method.POST);

    // Json to post.
    string jsonToSend = JsonHelper.ToJson(nYModel);

    request.AddParameter("application/json; charset=utf-8", jsonToSend, ParameterType.RequestBody);
    request.RequestFormat = DataFormat.Json;

    try
    {
        client.ExecuteAsync(request, response =>
        {
            if (response.StatusCode == HttpStatusCode.OK)
            {
                // OK
            }
            else
            {
                // NOK
            }
        });
    }
    catch (Exception error)
    {
        // Log
    }

答案 1 :(得分:0)

这是我提出的所有代码:

在c#app中,我有一个存储数据的类,比如

public class MyClass
    {
        public string field1{ get; set; }
        public string field2 { get; set; }
        public string field3 { get; set; }
        public string field4 { get; set; }
    }

然后我用我的所有条目填充List:

List<MyClass> list= new List<MyClass>();
// make new element of MyClass like "element1"
list.Add(element1);

嗯,这个方法很棒,因为列表可以很容易地用foreach或者while填充,在布局中采用所有的edittext,甚至是动态的,很棒。

接下来的部分需要“Newtonsoft.Json”(NutGet是你的朋友......你最好的朋友!)

 string json = JsonConvert.SerializeObject(list);

现在你必须发送它,我使用的帖子就像我在第一篇文章中写的那样。

在php部分中我获取数据并解析为:

$data = (json_decode($data));

这就像一个魅力,因为我可以访问元素:

foreach ($data as &$object){
  $obj->field1
  $obj->field2
  $obj->field3
  $obj->field4
}

那么现在只需构建查询字符串就可以了...(仅仅是为了我自己对完整性的渴望,我会粘贴最后一部分)

$query = 'INSERT INTO `table_name`(`field1`, `field2`, `field3`, `field4`) VALUES ';
foreach ($data as &$object)
    {
        $query_parts[] = "('" . $object->field1 . "', '" . $object->field2 . "', '" . $object->field3 . "', '" . $object->field4 . "')";

    }
        $query .= implode(',', $query_parts);

DONE!

感谢@mwisnicki的帮助。非常感谢!