【发布时间】:2017-04-18 12:04:41
【问题描述】:
我正在尝试从服务读取响应 XML 到类以使用它。
如果我使用这个网址https://btsvcs.college.edu/HR/Employee/ID/NAGWA_N@COLLEGE.EDU
响应 XML 将如下所示:
<Data>
<Record id="PA01051" rowOrder="0">
<employee_id>20000343</employee_id>
</Record>
</Data>
我已经创建了与响应 XML 相同的类。
这是课程:
public class GetEmployeeIdByEmail
{
[DataContract(Namespace = "")]
public class Record
{
[DataMember(Order = 0)]
public string employee_id { get; set; }
}
[DataContract(Namespace = "")]
public class Data
{
[DataMember(Order = 0)]
public Record Record { get; set; }
}
}
之后我做了一个函数来使用HttpClient读取XML
这是函数:
public async Task<GetEmployeeIdByEmail> GetEmployeeIdByEmail()
{
var client = new HttpClient();
var url = "https://btsvcs.college.edu/HR/Employee/ID/NAGWA_N@COLLEGE.EDU";
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xml"));
var responseMessage = await client.GetAsync(url);
GetEmployeeIdByEmail responseData = null;
if (responseMessage.IsSuccessStatusCode)
{
responseData = await responseMessage.Content.ReadAsAsync<GetEmployeeIdByEmail>();
}
return responseData;
}
如果我在这个函数上设置一个断点并一步一步地跟踪它,总是会回到网站读取这一行之后的 xml
var responseMessage = await client.GetAsync(url); 无响应完成调试。
我不知道这是什么原因。
【问题讨论】:
-
应用程序是否抛出错误?它挂了吗?
no response back是什么意思?澄清。 -
检查您的网址。您的代码工作正常。使用“duckduckgo.com”进行测试可能是“btsvcs.college.edu”的名称解析。
-
@Nkos 他们也不例外,应用程序仍在重新加载。
-
@ivw url是正确的,响应也很快
-
“必须是 200”,不要“必须是”它。断言它。实际上是 200 还是不是?
标签: c# .net xml asp.net-mvc asp.net-web-api