2016-09-19 4 views
1

RestSharpアンドロイドアップロード複数行

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

restsharpのパラメータをどのように書式設定する必要がありますか?

おかげ

編集:私はのEditText(のように、文字列1、文字列2、は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; 

これは、テーブル内の1行ですが、私はこの方法でリクエストごとに1つだけの行を追加することができます。しかし、私はより多くの行をアップロードしたい。

ありがとうございました

+0

どのように試してみるか、POSTメソッドを使用するのか、それとも何ですか? –

+0

はい私はポストを使って、データを通常どのようにアップロードするかについてのコードを追加しましたが、これを複数の行でどのように展開するか分かりません。私は何も見つけられませんでした。お返事ありがとう – Raikoug

答えて

0

できる1.0.2:C#のアプリで

、私は

のように、データを格納するクラスをしました
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); 

さて、この方法は、Aであります驚くべきことに、リストは、foreachやwhileで非常に簡単に移植することができ、レイアウト内のすべてのedittextを取得することができます。この次の部分の後

は「Newtonsoft.Json」(NutGetは...あなたの親友、あなたの友達です!)

string json = JsonConvert.SerializeObject(list); 

さて、今あなたは私が最初に書いたように私はポストを使用して、それを送信する必要が必要役職。私はデータを取り、で解析されたPHPの一部で

$data = (json_decode($data)); 

これは私がして要素にアクセスすることができbecouse、魅力のように働いた:

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さんのヘルプ。どうもありがとう!

1

これを使用してください。 JsonHelperあなたはこれは私が思い付いたすべてのコードである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 
    } 
+0

ありがとう!このようにして、「YourModel」に複数のエントリを追加できますか?または「YourModel」の配列を作成する必要がありますか?再度、感謝します! – Raikoug

+0

配列やリストを作ることができます。 –

+0

最後に愚かな質問をお願いします。 JsonHelperのパケット?本当にありがとう! – Raikoug