【发布时间】:2015-04-18 07:52:18
【问题描述】:
我有一个返回 xml 作为响应的 Web 服务。
下面是他的xml响应截图:
<?xml version="1.0" encoding="utf-8"?>
<Root>
<Header>
<Message type="String"></Message>
</Header>
<Output>
<Rows>
<Row>
<Result type="Integer">1021806</Result>
</Row>
</Rows>
</Output>
</Root>
这是代表 xml 响应的我的 .net 模型:
public class ResponseModel
{
public class Root
{
public Header header { get; set; }
public Output output { get; set; }
}
public class Header
{
public string Message { get; set; }
}
public class Output
{
public List<Row> Rows { get; set; }
}
public class Row
{
public int Result { get; set; }
}
}
我正在使用HttpClient类向指定的web服务发送请求。
这是我的代码:
using (var client = new System.Net.Http.HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xml"));
var response = client.GetAsync("myWebServiceUrl").Result;
if (response.IsSuccessStatusCode)
{
var responseContent = response.Content;
}
}
responseContent 有三种方法:
ReadAsStringAsync()
ReadAsStreamAsync()
ReadAsByteArrayAsync()
这三种方法有什么区别?
xml 响应应该使用哪一个以及如何将 xml 解析为所需的ResponseModel?
【问题讨论】:
-
您是否在服务客户之间共享模型代码?
-
你为什么要这样访问网络服务?为什么不在 VS 中将其用作 ServiceReference?
-
什么意思?你能详细说明一下吗?
标签: c# .net xml httpclient