Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Upload de Imagem no Xamarin / c#

Gente, boa noite. Estou desenvolvendo uma aplicação no Xamarin que necessito fazer o upload de imagem (tanto no Android quanto no IOS), para um servido. Procurei algo na internet e não encontrei. Estou usando o PostAsync doHttpClient. No servidor foi desenvolvido um WS que possui a seguinte estrutura de recebimento:

        Key                             Value
    FotoComprador                Arquivo JPG
    FotoVendedor                Arquivo JPG
    Localização                    Endereço do Imovel
    numero                         numero do imovel
    complmento                     complemento do imovel    
    CEP                            CEP
    Cidade                        Cidade
    Estado                        Estado

O Content-type do WS é form-data. Como devo definir o conteudo da variavel "informacoes" para executar o código abaixo?

                var conteudo = new StringContent(informacoes, Encoding.Unicode, "application/json");
                insereCorretor.DefaultRequestHeaders.Add("MoshiWSApiKey", MoshiKey);
                insereCorretor.DefaultRequestHeaders.Add("Authorization", String.Format("Basic {0}", autorizacao));
                var resultado = await insereCorretor.PostAsync(UrlIncluiRegistro, conteudo);
1 resposta
solução!

Olá, Edgar

Nesse caso, você tem que modificar um pouco seu código:

var conteudo = new FormUrlEncodedContent(new[]
    {
        new KeyValuePair<string, string>("MoshiWSApiKey", MoshiKey), 
        new KeyValuePair<string, string>("Authorization", String.Format("Basic {0}", autorizacao))
    });

var resultado = await insereCorretor.PostAsync(UrlIncluiRegistro, conteudo);

Note que aqui estamos usando FormUrlEncodedContent no lugar de StringContent, pois você está enviando os dados num outro formato, porque seu código precisa passar os dados no formato application/x-www-form-urlencoded e não application/json, como fizemos nas aulas.