RestSharp android 上传多行
RestSharp android upload multiple lines
我可以很好地使用 RestSharp 发送 "mono-line" 像这样的东西:
"user, password, email, telephone, ... "
但是我不明白如何发送多行,例如,这个table中的所有值:
+-----------+-----------+-------+
| Dog | Race | user |
+-----------+-----------+-------+
| Skitty | Doberman | User1 |
| Birillo | Pinscher | User2 |
| Fragolino | Corgi | User3 |
| ... | ... | ... |
+-----------+-----------+-------+
我应该如何格式化 restsharp 的参数?
谢谢
编辑:按照要求我展示了我如何发送 "normal" 数据:
我从用户在 EditText 中输入的数据(如 string1、string2、string3)中获取数据,并将它们发送到我用于 RestSharp 的 class,并通过以下方式发送它们:
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;
这是 table 中的单行,我可以通过这种方式为每个请求添加 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
}
这是我想出的所有代码:
在 C# 应用程序中,我有一个 class 存储数据,例如
public class MyClass
{
public string field1{ get; set; }
public string field2 { get; set; }
public string field3 { get; set; }
public string field4 { get; set; }
}
然后我用我的所有条目填充一个列表:
List<MyClass> list= new List<MyClass>();
// make new element of MyClass like "element1"
list.Add(element1);
好吧,这个方法很棒,因为列表可以很容易地用 foreach 或 while 填充,在布局中获取所有编辑文本,甚至是动态的,真棒。
在下一部分之后需要 "Newtonsoft.Json"(NutGet 是你的朋友......你最好的朋友!)
string json = JsonConvert.SerializeObject(list);
那么现在你必须发送它,我使用 post 就像我在第一个 post 中写的那样。
在 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);
完成!
感谢@mwisnicki 的帮助。非常感谢!
我可以很好地使用 RestSharp 发送 "mono-line" 像这样的东西:
"user, password, email, telephone, ... "
但是我不明白如何发送多行,例如,这个table中的所有值:
+-----------+-----------+-------+
| Dog | Race | user |
+-----------+-----------+-------+
| Skitty | Doberman | User1 |
| Birillo | Pinscher | User2 |
| Fragolino | Corgi | User3 |
| ... | ... | ... |
+-----------+-----------+-------+
我应该如何格式化 restsharp 的参数?
谢谢
编辑:按照要求我展示了我如何发送 "normal" 数据:
我从用户在 EditText 中输入的数据(如 string1、string2、string3)中获取数据,并将它们发送到我用于 RestSharp 的 class,并通过以下方式发送它们:
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;
这是 table 中的单行,我可以通过这种方式为每个请求添加 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
}
这是我想出的所有代码:
在 C# 应用程序中,我有一个 class 存储数据,例如
public class MyClass
{
public string field1{ get; set; }
public string field2 { get; set; }
public string field3 { get; set; }
public string field4 { get; set; }
}
然后我用我的所有条目填充一个列表:
List<MyClass> list= new List<MyClass>();
// make new element of MyClass like "element1"
list.Add(element1);
好吧,这个方法很棒,因为列表可以很容易地用 foreach 或 while 填充,在布局中获取所有编辑文本,甚至是动态的,真棒。
在下一部分之后需要 "Newtonsoft.Json"(NutGet 是你的朋友......你最好的朋友!)
string json = JsonConvert.SerializeObject(list);
那么现在你必须发送它,我使用 post 就像我在第一个 post 中写的那样。
在 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);
完成!
感谢@mwisnicki 的帮助。非常感谢!