0

웹 API 기반의 서버 (예 : &)에서 데이터를 가져 와서 json 및/또는 XML 형식으로 데이터를 제공하는 WinRT 앱을 빌드하고 있습니다.WinRT는 HttpClient를 사용하여 토큰으로 웹 API 기반 URL을 호출합니다.

사용자가 자신의 자격 증명 (사용자 이름, 비밀번호)을 사용하여 처음으로 로그인하는 경우 서버에서 오는 응답은 연속적인 URL 요청에 사용되는 & TOKEN의 성공 비트입니다. 보내는 이제 요청

 using (HttpClient httpClient1 = new HttpClient()) 
        { 
         string url = "http://example.com/abc/api/process1/GetLatestdata/10962f61-4865-4e7a-a121-3fdd968824b5?employeeid=6"; 

//The string 10962f61-4865-4e7a-a121-3fdd968824b5 is the token sent by the server    

         var response = await httpClient1.GetAsync(new Uri(url)); 

         string content = await response.Content.ReadAsStringAsync(); 
        } 

내가 얻을 수있는 응답을 나는 HttpClient를 사용하고

401 "승인되지 않은"상태 코드입니다. 그리고 나는 xml 내가 응답에 "권한이없는 사용자"입니다.

appManifest에서 변경해야 할 사항이 있습니까?

Here is snapshot of app capabilities

내가 this을 확인했습니다

, 그러나 우리는 HttpClient를 자격 증명없이 사용하지 못할 ??

답변

1

귀하의 능력으로 충분합니다. 인터넷 (클라이언트 & 서버)에 포함되어있어 인터넷 (클라이언트)이 필요하지 않습니다.

WinRT HttpClient에 대한 자격 증명이없는 링크 된 게시물에서 그들은 System.Net.Http.HttpClientHandler을 참조합니다.

아마도 HttpBaseProtocolFilter을 사용하여 자격 증명을 추가 할 수 있습니까?

using (var httpFilter = new HttpBaseProtocolFilter()) 
{ 
    using (var httpClient = new HttpClient(httpFilter)) 
    { 
     httpFilter.ServerCredential... 
    } 
} 

나는 당신의 보안 메커니즘을 모르는, 내가 HttpClient 내 세션 키를 사용하고있어 쿠키입니다. 하지만 당신의 클라이언트 코드는 괜찮아 보인다.

+0

Dani u r correct ... 내 클라이언트 코드가 정상입니다. 요청을 확인하는 데 끊임없이 문제가있었습니다 ... 고맙습니다. –

관련 문제