/// <exception cref="IOException">This method might throw this exception.</exception>
        protected override Stream GetStreamFromNetwork(string imageUri, Java.Lang.Object extra)
        {
            HttpGet            httpRequest   = new HttpGet(imageUri);
            IHttpResponse      response      = httpClient.Execute(httpRequest);
            IHttpEntity        entity        = response.Entity;
            BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity);

            return(bufHttpEntity.Content);
        }
コード例 #2
0
        async Task <PipelineContinuation> WriteResponseEntity(ICommunicationContext context)
        {
            if (context.Response.Entity.Instance == null)
            {
                Log.WriteDebug("There was no response entity, not rendering.");
                if (ShouldSendEmptyResponseBody(context))
                {
                    await SendEmptyResponse(context);
                }
                return(PipelineContinuation.Continue);
            }

            var isBuffered = context.PipelineData.ResponseCodec?.CodecModel?.IsBuffered;
            var entity     = context.Response.Entity;
            BufferedHttpEntity buffered = null;

            if (isBuffered == true)
            {
                entity = buffered = new BufferedHttpEntity(entity);
            }

            var codecInstance = ResolveCodec(context);
            var writer        = CreateWriter(codecInstance);

            using (Log.Operation(this, "Generating response entity."))
            {
                await writer(
                    entity.Instance,
                    entity,
                    context.Request.CodecParameters.ToArray());

                await entity.Stream.FlushAsync();

                if (isBuffered == true)
                {
                    await buffered.SendResponseAsync();
                }
            }

            return(PipelineContinuation.Continue);
        }