Позвоните на внешний веб-сервис json из asp.net C # - PullRequest
9 голосов
/ 15 января 2010

Мне нужно позвонить на веб-сервис json из C # Asp.net. Служба возвращает объект json, и данные json, которые нужны веб-службе, выглядят следующим образом:

"data" : "my data"

Это то, что я придумал, но я не могу понять, как добавить данные в свой запрос и отправить их, а затем проанализировать данные json, которые я получил.

string data = "test";
Uri address = new Uri("http://localhost/Service.svc/json");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
string postData = "{\"data\":\"" + data + "\"}";

Как я могу добавить свои данные json в мой запрос и затем проанализировать ответ?

1 Ответ

16 голосов
/ 15 января 2010

Используйте JavaScriptSerializer , чтобы десериализовать / проанализировать данные. Вы можете получить данные, используя:

// corrected to WebRequest from HttpWebRequest
WebRequest request = WebRequest.Create("http://localhost/service.svc/json");

request.Method="POST";
request.ContentType = "application/json; charset=utf-8";
string postData = "{\"data\":\"" + data + "\"}"; //encode your data 
                                               //using the javascript serializer

//get a reference to the request-stream, and write the postData to it
using(Stream s = request.GetRequestStream())
{
    using(StreamWriter sw = new StreamWriter(s))
        sw.Write(postData);
}

//get response-stream, and use a streamReader to read the content
using(Stream s = request.GetResponse().GetResponseStream())
{
    using(StreamReader sr = new StreamReader(s))
    {
        var jsonData = sr.ReadToEnd();
        //decode jsonData with javascript serializer
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...