我正在尝试从服务读取响应XML到类中以使用它。 如果我使用这个网址https://btsvcs.college.edu/HR/Employee/ID/[email protected]
从.NET客户端调用Web API(C#)
响应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; }
}
}
之后,我不得不做出一个函数用来读取XML的HttpClient
这是函数:
public async Task<GetEmployeeIdByEmail> GetEmployeeIdByEmail()
{
var client = new HttpClient();
var url = "https://btsvcs.college.edu/HR/Employee/ID/[email protected]";
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);
并且没有回应完成调试。
我不知道是什么原因。
异步应用程序是否抛出一个错误?它挂了吗? “没有回应”是什么意思?澄清。 – Nkosi
检查您的网址。你的代码工作正常。使用“https://duckduckgo.com”进行测试可能是“btsvcs.college.edu”的名称解析。 – ivw
@Nkos他们也不例外,应用程序仍然重新加载。 – Hansy