Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Problema na Integração com AndroidStuido

Novamente peço desculpas se estiver postando no Forum errado. Estou formulando um sistema integrado entre uma WebApi e um aplicativo android (feito no Adroid Studio); Meu problema tem sido que subo o servidor WebApi, assim como o Aplicativo, entretanto ao tentar consumir o Serviço o Servidor me retorna Status 400, bad request. Estou utilizando o Metodo Post via Json, mas ainda assim não consigo conectar.

Codigo C#

public string Post([FromBody]string value)
        {
            return "{Mensagem:OK}";

Codigo Android:

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestProperty("Content-type", "application/json");
            connection.setRequestProperty("Accept", "application/json");
            connection.setRequestMethod("POST");
            connection.setDoOutput(true);

            PrintStream output = new PrintStream(connection.getOutputStream());
            output.println(json);

            connection.connect();

            int statusCode = connection.getResponseCode();


            String resposta = new String();
            if (statusCode >= 200 && statusCode < 400) {

                Scanner scanner = new Scanner(connection.getInputStream());
                //Scanner scanner = new Scanner(String.valueOf(connection.getResponseCode()));
                resposta = scanner.next();

            }
            else {

                Scanner scanner = new Scanner(connection.getErrorStream());
                //Scanner scanner = new Scanner(String.valueOf(connection.getResponseCode()));

                do{
                    resposta += scanner.next();

                }while(scanner.hasNext());

            }

O retorno que tenho é :

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML>
    <HEAD>
        <TITLE>BadRequest</TITLE>
        <METAHTTP-EQUIV="Content-Type"Content="text/html;charset=us-ascii">
    </HEAD>
    <BODY>
    <h2>BadRequest-InvalidHostname</h2>
    <hr>
    <p>HTTPError400.Therequesthostnameisinvalid.</p>
    </BODY>
</HTML>

Por fim: o servidor que estou conectando é "http://10.0.2.2:44658/api/{Controller}"

Grato pela atenção se puderem me ajudar o mais rapido o possível fico grato :D

3 respostas

Olá, Flávio! A url que você está tentando acessar é mesmo "http://10.0.2.2:44658/api/{Controller}"? Ela contém essas chaves em volta de "Controller"? Não está faltando subsituir essa parte pelo nome do Controller?

solução!

Ola Marcelo, Obrigado pelo auxilio, consegui resolver o problema era relácionado ao IIS e não ao Android Studio, quando no emulador se conecta ao "10.0.2.2" o emulador de android envia ao endereço "127.0.0.1", entretanto o IIS não aceita esse caminho como Localhost, A não ser que tenha sido alterado no arquivo de configuração do IIS, esse arquivo encontra-se na propria pasta do IIS (applicationhost.config, o nome dele) para versões mais antigas do Visual Studio ou em uma pasta oculta no projeto para as versões mais recentes do Visual Stuido. Obrigado pela atenção :D

Excelente, Flávio, e muito obrigado, porque agora acabei aprendendo uma coisa nova, que pode ser bastante útil no futuro. Abs!