2012-09-10 9 views
6

Mam punkt końcowy, który pobiera obiekt Json, który ma element komunikatu, a reszta może mieć różne właściwości. Oto przykład:Jak umieścić surowy Json w RestSharp?

public void SendMessage(IDictionary<string, string> message) 
{ 
    var client = new RestClient(MahUrl); 
    var request = new RestRequest(Method.POST); 
    var json = new JObject(); 

    foreach (var pair in message) 
    { 
     json.Add(pair.Key, pair.Value); 
    } 
    json = new JObject(new JProperty("message", json)); 
    // { 
    //  "message": 
    //  { 
    //   "prop1": "val1", 
    //   "foo": "bar", 
    //   "batman": "robin" 
    //  } 
    // } 

    // not quite sure here 
    request.? 

    // send request 
} 

Widziałem kilka przykładów, jak można serializacji/deserializacji obiektu .Net ale jak widać, właściwości obiektu JSON mogłyby być cokolwiek. Jak mogę po prostu napisać surowy json za pomocą RestSharp?

+0

Jestem również zainteresowany tym. Czy udało ci się ostatecznie rozwiązać problem? – Para

+0

Zrezygnowałem z RestSharp. Musiałem użyć standardowego HttpWebRequest, aby wysłać wiadomość, która była tak dziwna. – bressain

Odpowiedz

6

Uważam, że poniższy fragment jest tym, czego szukasz.

request.AddParameter("application/json", json, ParameterType.RequestBody); 
+0

Działa to doskonale, gdy zmienna 'json' jest ciągiem - nie próbowałem rzucać JObjects na nią ... (serviceinfo dla innych osób znajdujących tę stronę) – Julian