Próbuję użyć ServiceStack, aby zwrócić plik do klienta ServiceStack w trybie RESTOWN.Jak spożywać pliki za pomocą klienta ServiceStack
Czytałem inne pytania na temat SO (here i here), które zalecają użycie HttpResult i obiektu FileInfo lub MemoryStream, aby umożliwić zmianę nagłówka ContentType na odpowiedni typ pliku.
Działa to dla mnie, gdy zadzwonię do usługi za pośrednictwem przeglądarki, automatycznie rozpoczyna się pobieranie właściwego pliku. Jak jednak wykorzystać plik przy użyciu jednego z klientów ServiceStack?
używam żądania dto i próbuje powrócić używając coś podobnego do
return new HttpResult(new FileInfo("file.xml"), asAttachment:true) {
ContentType = "text/xml"
};
Jak będę konsumować to z JsonServiceClient na przykład?
Dzięki Mythz, znalazłem rozszerzenia WebRequest podczas badania odpowiedzi loannisa poniżej i zacząłem podejrzewać, że wymagany był standardowy WebRequest, a nie ServiceClient. Z powodzeniem skorzystałem już z DownloadAsString, ale przełączyłem się na DownloadUrl w twoim przykładzie dzięki dostępowi do nagłówków, które zapewnia. Jeszcze raz dziękuję za potwierdzenie, że do pobierania plików powinienem użyć WebRequest, znalazłem mnóstwo kodu Service dla dostarczania plików, ale szaleję próbując znaleźć przykład konsumowania usługi :) – thudbutt
+1: Ładne, proste, praktyczne. –
Nie wiedziałem o tej funkcjonalności, to proste bezkompromisowe zadziwiające! –