1
ここでは、次のようなxmlデータを含むサンプルリンクがあります。指定されたリンクのXMLコンテンツには、 のXML要素<DisplayName>Name of the employee</DisplayName>
があります。DisplayName要素からすべての値を取得したいと考えています。どのようにのDisplayNameすべてのxml要素の内容を取得し、JSONの リストはオブジェクトとしてそれらを返すには?これまでのところ、私が以下で試したことはありますが、何も返されません。私はブレークポイントを置くとき、私はresponse.IsSuccessStatusCode = falseを とが無断あるのStatusCodeとをのreasonPhraseことが分かりました。私はこのことをどうやってやっていくのですか?HttpClientを使用してXMLコンテンツサイトからデータを消費し、JsonオブジェクトのListとして返す方法
private const string URL = "https://apidev.mysite.net/employees/";
[Route("api/Personnel/UserNames")]
[HttpGet]
public List<ADGroup> AutocompleteUserNames(string searchText)
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(URL);
// Add an Accept header for JSON format.
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
// List data response.
HttpResponseMessage response = client.GetAsync(searchText).Result;
// response.EnsureSuccessStatusCode();
if (response.IsSuccessStatusCode)
{
var data = response.Content.ReadAsStringAsync().Result;
List<ADGroup> result = AutoMapper.Mapper.Map<List<ADGroup>>(data);
return result;
}
else
{
return new List<ADGroup>();
}
}
サンプルリンク:リンクの https://apidev.mysite.net/employees/shea
XMLコンテンツ:
<ArrayOfEmployeeVm xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/MySite.Api.WebApi.Models">
<EmployeeVm>
<ActiveDirectoryName>dfhdfhdffhf</ActiveDirectoryName>
<BusinessPhone>4646456</BusinessPhone>
<DisplayName>Shea, Danny J.</DisplayName>
<Email>[email protected]</Email>
<EmployeeId>19072</EmployeeId>
<EmployeeIdOriginal>19072</EmployeeIdOriginal>
<FirstName>Danny J.</FirstName>
<FullName>Danny J. Shea</FullName>
<IsActive>true</IsActive>
<LastName>Shea</LastName>
<Office>Boston</Office>
<PracticeGroup>HLB Consulting</PracticeGroup>
<Title>Of Counsel</Title>
</EmployeeVm>
<EmployeeVm>
<ActiveDirectoryName>MPtshdfh</ActiveDirectoryName>
<BusinessPhone>+4546556</BusinessPhone>
<DisplayName>Shearer, Dennis D.</DisplayName>
<Email>[email protected]</Email>
<EmployeeId>60048</EmployeeId>
<EmployeeIdOriginal>60048</EmployeeIdOriginal>
<FirstName>Dennis D.</FirstName>
<FullName>Dennis D. Shearer</FullName>
<IsActive>true</IsActive>
<LastName>Shearer</LastName>
<Office>San Francisco</Office>
<PracticeGroup>Office Services</PracticeGroup>
<Title>Facilities Manager</Title>
</EmployeeVm>
<EmployeeVm>
<ActiveDirectoryName>MPghdjgj</ActiveDirectoryName>
<BusinessPhone>+45645757</BusinessPhone>
<DisplayName>Shea, Ted P.</DisplayName>
<Email>[email protected]</Email>
<EmployeeId>74251</EmployeeId>
<EmployeeIdOriginal>74251</EmployeeIdOriginal>
<FirstName>Ted P.</FirstName>
<FullName>Ted P. Shea</FullName>
<IsActive>true</IsActive>
<LastName>Shea</LastName>
<Office>Philadelphia</Office>
<PracticeGroup>Information Technology</PracticeGroup>
<Title>Chief Information Officer</Title>
</EmployeeVm>
</ArrayOfEmployeeVm>