【问题标题】:Xamarin - FFImageLoading - System.IO.IOExceptionXamarin - FFImageLoading - System.IO.IOException
【发布时间】:2020-03-30 21:15:45
【问题描述】:

我的 XAML 文件中有以下内容:

    <ContentPage.Content>

    <AbsoluteLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
        <StackLayout
             AbsoluteLayout.LayoutFlags="All"
             AbsoluteLayout.LayoutBounds="0,0,1,1">
            <service:PinchPanContainer HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
                <ffimageloading:CachedImage RetryCount="5" RetryDelay="1" CacheDuration="1" x:Name="MyImage" HorizontalOptions="Fill" VerticalOptions="CenterAndExpand" DownsampleToViewSize="False"></ffimageloading:CachedImage>
            </service:PinchPanContainer>                
        </StackLayout>
        <StackLayout BindingContext="{x:Reference MyImage}" IsVisible="{Binding IsLoading}" Padding="12"
             AbsoluteLayout.LayoutFlags="PositionProportional"
             AbsoluteLayout.LayoutBounds="0.5,0.5,-1,-1">
            <ActivityIndicator BindingContext="{x:Reference MyImage}" IsRunning="{Binding IsLoading}" />
            <Label Text="Loading Hi-Res Image..." BindingContext="{x:Reference MyImage}" IsVisible="{Binding IsLoading}" HorizontalOptions="Center" TextColor="Black"/>
         </StackLayout>
    </AbsoluteLayout>

</ContentPage.Content>

并使用它来定义图像源:

    MyImage.Source = uri;

Uri 有这个值,图片在浏览器中正常加载:http://192.168.0.12/images/27kv4c1/2dbc5331/a08a31/IMG_4190-Modifica.png

但是在模拟中,一旦我分配了源,我就会得到 5 倍的错误:

03-30 21:06:12.525 I/mono-stdout(28576): ---> (Inner Exception #5) System.IO.IOException: The server returned an invalid or unrecognized response.
03-30 21:06:12.525 I/mono-stdout(28576):   at System.Net.Http.HttpConnection+ContentLengthReadStream.ReadAsync (System.Memory`1[T] buffer, System.Threading.CancellationToken cancellationToken) [0x00171] in /Users/builder/jenkins/workspace/archive-mono/2019-10/android/release/external/corefx/src/System.Net.Http/src/System/Net/Http/SocketsHttpHandler/ContentLengthReadStream.cs:70 
03-30 21:06:12.525 I/mono-stdout(28576):   at FFImageLoading.Cache.DownloadCache.DownloadAsync (System.String url, System.Threading.CancellationToken token, System.Net.Http.HttpClient client, FFImageLoading.Work.TaskParameter parameters, FFImageLoading.DownloadInformation downloadInformation) [0x00652] in C:\projects\ffimageloading\source\FFImageLoading.Common\Cache\DownloadCache.cs:163 
03-30 21:06:12.525 I/mono-stdout(28576):   at FFImageLoading.Cache.DownloadCache+<>c__DisplayClass15_0.<DownloadAndCacheIfNeededAsync>b__0 () [0x00050] in C:\projects\ffimageloading\source\FFImageLoading.Common\Cache\DownloadCache.cs:58 
03-30 21:06:12.525 I/mono-stdout(28576):   at FFImageLoading.Retry.DoAsync[T] (System.Func`1[TResult] action, System.TimeSpan retryInterval, System.Int32 retryCount, System.Action onRetry) [0x00047] in C:\projects\ffimageloading\source\FFImageLoading.Common\Helpers\Retry.cs:19 <---

可能是什么原因造成的?

【问题讨论】:

  • 仅仅因为它适用于您的桌面浏览器并不意味着它适用于移动设备。使用您的设备浏览器进行检查。
  • @jason 在我的电脑浏览器中加载,在我的智能手机中加载,在模拟器中加载部分并在不到一秒后中止
  • 我会尝试使用 HttpClient 下载,以便您查看服务器的详细响应
  • @Jason 它说“流的意外结束”,此代码:Connection: close Content-Length: 4229181 Content-Type: image/png Date: Mon, 30 Mar 2020 21:35:48 GMT Host: 192.168.0.12 X-Android-Received-Millis: 1585604148401 X-Android-Response-Source: NETWORK 200 X-Android-Selected-Protocol: http/1.1 X-Android-Sent-Millis: 1585604148394

标签: xamarin exception io ffimageloading


【解决方案1】:

问题是我使用的是来自 laravel 的 php artisan serve。切换到 Apache(从 xampp)解决了这个问题。

【讨论】:

  • 看来您的问题已经解决了,请记得将您的回复标记为答案,对其他社区成员有好处,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-06
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多