HttpWebResponse и Int - PullRequest
       8

HttpWebResponse и Int

0 голосов
/ 17 января 2012

Я интегрируюсь с сервисом REST и пока все хорошо.Хит немного препятствие.Я бью сервис через HttpWebRequest.Я получаю ответы успешно, но при запуске HttpWebResponse GetResponseStream через StreamReader я получаю

<int xmlns="http://schemas.microsoft.com/2003/10/Serialization/">427</int>.

Немного застрял на том, как преобразовать это обратно в ac # int.

Любой совет?

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 января 2012

Вы можете взглянуть на методы int.Parse и int.TryParse в сочетании с XDocument , который можно использовать для загрузки XML-ответа в:

var request = WebRequest.Create(...);
...
using (var response = request.GetResponse())
using (var stream = response.GetStream())
{
    var doc = XDocument.Load(stream);
    if (int.TryParse(doc.Root.Value, out value))
    {

        // the parsing was successful => you could do something with
        // the integer value you have just read from the body of the response
        // assuming the server returned the XML you have shown in your question,
        // value should equal 427 here.
    }
}

или, что еще проще, метод Load XDocument понимает HTTP, поэтому вы можете даже сделать это:

var doc = XDocument.Load("http://foo/bar");
if (int.TryParse(doc.Root.Value, out value))
{
    // the parsing was successful => you could do something with
    // the integer value you have just read from the body of the response
    // assuming the server returned the XML you have shown in your question,
    // value should equal 427 here.
}

таким образом, вам даже не нужно использовать какие-либо HTTP-запросы / ответы. Все будет обрабатываться для вас BCL, что довольно здорово.

0 голосов
/ 17 января 2012

Если вы просто пытаетесь преобразовать строку "427" в int, используйте метод Int32.Parse.

var str = "427";
var number = Int32.Parse(str);  // value == 427 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...