Xamarin: Android app does not load Https images

Asked

Viewed 332 times

0

Guys I’m developing a Cross-platform App in Xamarin and I’m not able to upload https images from an api. If I perform a compilation on Windows Phone the images are normally loaded already on android no, so I ask, how to fix ?

See the pictures

Android:

Android

UWP UWP

I am using the following code to get the data through the api:

Home.Cs

namespace AppNewsPlay.Views
{

    public partial class Home : TabbedPage
    {
        //private UltimasNoticias UltimasNoticias;
        List<UltimasNoticias> UNoticias;

        public TabbedPage Detail { get; private set; }

        public Home()
        {


            UNoticias = new List<UltimasNoticias>();
            ObterUltimasNoticias();
            InitializeComponent();

        }

        private async void ObterUltimasNoticias()
        {

            //   var jsonRequest = JsonConvert.SerializeObject(UNoticias);
            // var httpContent = new StringContent(jsonRequest, Encoding.UTF8, "application/json");
            var resp = string.Empty;

            try
            {
                var uri = new HttpClient();
                uri.BaseAddress = new Uri("http://api.newsplay.com.br");
                var url = "/api/post/";
                var result = await uri.GetAsync(url);


                if (!result.IsSuccessStatusCode)
                {
                    await DisplayAlert("Erro de Conexão", "Não foi possível obter as notícias do servidor, Tente novamente mais tarde!", "OK");
                    return;
                }

                resp = await result.Content.ReadAsStringAsync();


            }
            catch (Exception ex)
            {
                await DisplayAlert("Erro de Conexão com o Servidor", ex.Message, "OK");
                return;

            }

            // transformando o retorno em objeto através do json e deserealize e retornando em lista
            var UNoticias = JsonConvert.DeserializeObject<List<UltimasNoticias>>(resp);

            //Adicionando os itens ao ListView na Home.xaml
            UnoticiasList.ItemsSource = UNoticias;

        }    

        private async void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            if(e.SelectedItem !=null)
            {
                var selection = e.SelectedItem as UltimasNoticias;
                //DisplayAlert("Você Selecionou", selection.Post_title, "ok");         

                await Navigation.PushAsync(new PostView());
                #region DisabledSelectionHighlighting
                ((ListView)sender).SelectedItem = null;
                #endregion
            }



        }

Home.xaml

    <?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="AppNewsPlay.Views.Home"
             Title=""
             Icon="LogoMobile.png"    
             >

    <TabbedPage.Children>

        <ContentPage Title="Ultimas Notícias" Icon="">
            <ContentPage.Content>
            <StackLayout
                        Spacing="20">      
                        <Label Text="Últimas Notícias"
                               FontSize="20"                        
                               FontAttributes="Bold"
                               VerticalTextAlignment="Center"
                               HorizontalOptions="Center"

                         />

                <ListView x:Name="UnoticiasList"
                                  HasUnevenRows="True"      
                                  SeparatorColor="White"
                                  SeparatorVisibility="Default"
                                  ItemSelected="OnItemSelected"
                                  >


                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <ViewCell>

                                            <StackLayout
                                                 Padding="20"                                          

                                                 Orientation="Vertical"
                                                >

                                                <Image Source="{Binding Guid}"
                                                                           WidthRequest="250"
                                                                           HeightRequest="150"
                                                                           VerticalOptions="Center"

                                                                            />


                                                <Label x:Name="Post_title" Text="{ Binding Post_title }"
                                                                   FontSize="16"
                                                                   FontAttributes="Bold"  

                                                                   HorizontalTextAlignment="Center"
                                                                   />

                                                <Label x:Name="Post_content" Text="{ Binding Post_content }"
                                                       FontSize="12"                                                
                                                       HorizontalTextAlignment="Center"
                                                       VerticalTextAlignment="Center"
                                                       HeightRequest="70"

                                                       />

                                                <Label x:Name="Post_ad" Text="{Binding Post_ad}"
                                                       FontSize="11"                                            
                                                       HorizontalTextAlignment="Center"   
                                                       />                                        

                                            </StackLayout>                                    

                                    </ViewCell>
                                </DataTemplate>                            
                            </ListView.ItemTemplate>                    
                        </ListView>
                    </StackLayout>
            </ContentPage.Content>
        </ContentPage>


        <ContentPage Title="Xbox" Icon="">
            <ContentPage.Content>
            </ContentPage.Content>

        </ContentPage>

        <ContentPage Title="Playstation" Icon="">
            <ContentPage.Content>

            </ContentPage.Content>
        </ContentPage>

    </TabbedPage.Children>
</TabbedPage>

Return of the Api in Json inserir a descrição da imagem aqui

1 answer

0


I solved my problem this way:

I noticed that when displaying an image, the hosting server creates a redirect before.

Ai to get around the problem, I downloaded my api and changed the return adding the address before, as the image below, done this the app began to display the images on Android

inserir a descrição da imagem aqui

Browser other questions tagged

You are not signed in. Login or sign up in order to post.