.net - 使用来自 webapi 的 HttpClient 使用 xml

标签 .net asp.net-web-api dotnet-httpclient

我使用 WebClient 从 restfull 服务(.net web api)获取一个 Xml 对象,一切都很好:

using(WebClient client = new WebClient())
{
   client.Encoding = UTF8Encoding.UTF8;
   client.Headers[HttpRequestHeader.ContentType] = "text/xml";
   client.Credentials = // ....;
   xmlResult = webClient.DownloadString(url);
}

....

这段代码很好用。我得到一个 Xml 作为字符串返回,每个人都很高兴。

现在,我更改了它,以便它可以与 HttpClient 一起使用,并且我无法返回 Xml - 始终将 json 作为字符串。
using(var handler = new HttpClientHandler() {Credentials = new NetworkCredentials})
using(var client = new HttpClient(handler))
{
   var request = new HttpRequestMessage(HttpMethod.Get, url);
   request.Headers.Add(HttpRequestHeader.ContentType.ToString(), "text/xml");
   returnedXml = client.SendAsync(request).Result.Content.ReadAsStringAsync().Result;
}   

我究竟做错了什么?我怎样才能得到我渴望的 Xml?

谢谢

最佳答案

试试这个..

using(var handler = new HttpClientHandler() {Credentials = new NetworkCredentials})
using(var client = new HttpClient(handler))
{
      client.DefaultRequestHeaders
      .Accept
      .Add(new MediaTypeWithQualityHeaderValue("text/xml"));
   var request = new HttpRequestMessage(HttpMethod.Get, url);
    returnedXml = client.SendAsync(request).Result.Content.ReadAsStringAsync().Result;
}  

关于.net - 使用来自 webapi 的 HttpClient 使用 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31115545/

相关文章:

javascript - 交互式地理 map 的网络技术堆栈?

rest - ASP.NET Web Api 路由自定义

c# - WebAPI token 颁发授权

c# - HttpClient.GetAsync(...) 在使用 await/async 时永远不会返回

c# - HTTP客户端。在自动发现的代理上进行身份验证的默认凭据

.NET - 查找外部应用程序主线程ID

c# - 使用 SSH.NET 在 ProgressBar 中显示文件上传进度

c# - 移动没有标题栏的表格

c# - HttpWebRequest.GetResponse 方法卡住特定的 url

c# - 是否可以将应用程序配置中的更改序列化到应用程序的 app.config 文件中?