Eu procurei em todos os lugares, mas não consegui encontrar minha resposta. Existe uma maneira de fazer uma solicitação HTTP simples? Quero solicitar uma página / script PHP em um dos meus sites, mas não quero mostrar a página da web.
Se possível, eu quero fazer isso em segundo plano (em um BroadcastReceiver)
android
httpwebrequest
androidhttpclient
Mats Hofman
fonte
fonte
Respostas:
ATUALIZAR
Esta é uma resposta muito antiga. Definitivamente, não recomendarei mais o cliente do Apache. Em vez disso, use:
Resposta original
Primeiro, solicite uma permissão para acessar a rede e adicione o seguinte ao seu manifesto:
A maneira mais fácil é usar o cliente http Apache incluído no Android:
Se você deseja que ele seja executado em um thread separado, recomendo estender o AsyncTask:
Você pode fazer uma solicitação:
fonte
a menos que você tenha um motivo explícito para escolher o Apache HttpClient, você deve preferir java.net.URLConnection. você pode encontrar muitos exemplos de como usá-lo na web.
também aprimoramos a documentação do Android desde sua postagem original: http://developer.android.com/reference/java/net/HttpURLConnection.html
e conversamos sobre as compensações no blog oficial: http://android-developers.blogspot.com/2011/09/androids-http-clients.html
fonte
Nota: O Apache HTTP Client incluído no Android agora está obsoleto em favor do HttpURLConnection . Consulte o Blog dos desenvolvedores do Android para obter mais detalhes.
Adicionar
<uses-permission android:name="android.permission.INTERNET" />
ao seu manifesto.Você recuperaria uma página da Web da seguinte maneira:
Eu também sugiro executá-lo em um thread separado:
Consulte a documentação para obter mais informações sobre manipulação de resposta e solicitações POST.
fonte
readStream
nem está definido.A maneira mais simples é usar a biblioteca Android chamada Volley
Você pode enviar uma solicitação http / https tão simples quanto isto:
Nesse caso, você não precisa considerar "executar em segundo plano" ou "usar cache", pois tudo isso já foi feito pelo Volley.
fonte
Saudações
fonte
Com um fio:
fonte
Fiz isso para um serviço da Web solicitar a URL, usando uma biblioteca Gson:
Cliente:
fonte
Olhe para esta nova biblioteca incrível que está disponível via gradle :)
build.gradle:
compile 'com.apptakk.http_request:http-request:0.1.2'
Uso:
https://github.com/erf/http-request
fonte
Use Volley como sugerido acima. Adicione o seguinte ao build.gradle (Módulo: app)
Adicione o seguinte ao AndroidManifest.xml:
E adicione o seguinte ao seu código de atividade:
Ele substitui o cliente http e é muito simples.
fonte
Este é o novo código para solicitação HTTP Get / POST no Android.
HTTPClient
está privado e pode não estar disponível como estava no meu caso.Primeiro, adicione as duas dependências no build.gradle:
Em seguida, escreva esse código
ASyncTask
nodoBackground
métodofonte
Para mim, a maneira mais fácil é usar a biblioteca chamada Retrofit2
Nós apenas precisamos criar uma interface que contenha nosso método de solicitação, parâmetros e também podemos criar um cabeçalho personalizado para cada solicitação:
E o melhor é que podemos fazê-lo de forma assíncrona facilmente usando o método de enfileiramento
fonte
Como nenhuma das respostas descreveu uma maneira de executar solicitações com o OkHttp , que é um cliente http muito popular hoje em dia para Android e Java em geral, vou fornecer um exemplo simples:
A clara vantagem desta biblioteca é que ela nos abstrai de alguns detalhes de baixo nível, fornecendo maneiras mais amigáveis e seguras de interagir com elas. A sintaxe também é simplificada e permite escrever um bom código.
fonte