내 HTTP REST API를 호출하기 위해 Xamarin과 함께 네임 스페이스 System.Net.Http 네임 스페이스를 사용하고 있는데 제대로 작동합니다. 내 HTTP 클라이언트 코드는 일반적인 휴대용 프로젝트에 상주, 나는네임 스페이스 System.Net.Cache가 존재하지 않습니다.
다음는 같은 모습입니다 (아이폰 OS는 잔고 여전히) 내 안드로이드 전용 프로젝트에서 호출 그러나
Uri apiUri = new Uri("/example");
var request = (HttpWebRequest)HttpWebRequest.Create(apiUri);
request.ContentType = "application/json";
request.Method = "GET";
WebResponse response = await request.GetResponseAsync();
, I 동일한 URL에 대한 연속 GET이 캐시 된 것으로 의심됩니다. https://developer.xamarin.com/api/type/System.Net.Cache.HttpRequestCachePolicy/에 설명 된대로 HttpRequestCachePolicy 개체를 통해 캐시를 제거 할 수 있음을 확인했습니다. 내 모습은 다음과 같이 보일 것입니다 :
그러나, 네임 스페이스 System.Net.Cache는 정의되어 있지 않으며이 방법을 사용할 수 없습니다. .NET SDK 4.5를 사용하고 있습니다.
누락 된 설정이 있습니까? 아니면 GET 요청 캐싱을 사용하지 않는 다른 방법을 찾아야합니까? 다음은
은 내가 오류입니다 :The type or namespace name 'Cache' does not exist in the namespace 'System.Net' (are you missing an assembly reference?)
'HttpClient'에'AndroidClientHandler'를 사용하고 있습니까? 'System.Net.Cache'까지는 프로젝트에서'System.Net'에 대한 참조를 추가하십시오. – SushiHangover
모든 클라이언트가 공용 프로젝트에 있기 때문에 HttpClientOnly를 사용하고 있습니다. 따라서 존재한다면 플랫폼 독립적 인 솔루션을 선호합니다. 여전히, 나는 당신이 언급 한'AndroidClientHandler'를 점검 할 것입니다 : 고마워요! –
'Xamarin.Android' 프로젝트 옵션 (Android Build/HttpClient 구현 아래)에서 빌드 옵션으로'AndroidClientHandler'를 설정할 수 있습니다. – SushiHangover