HTTP-запрос, аутентификация в Android - PullRequest
5 голосов
/ 22 июня 2010

В настоящее время я пытаюсь пройти проверку подлинности на сервере через вызов HTTP Get. Приведенный ниже код работает при компиляции в проекте Java. Вернуть правильный токен в программу. Однако всякий раз, когда я пытаюсь реализовать тот же код в Android, токен не возвращается через вызов Get.

В Android я возвращаю inputLine в функции, однако inputLine всегда является пустой строкой.

system.out.println () печатает возвращенный токен.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;

public class JavaHttpsExample 
{

public static void main(String[] args)
{   String inputLine = new String();
    try
    {
    String httpsURL = "https://the url";
    URL myurl = new URL(httpsURL);
    HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
    InputStream ins = con.getInputStream();
    InputStreamReader isr=new InputStreamReader(ins);
    BufferedReader in =new BufferedReader(isr);

    inputLine = in.readLine();

    System.out.println(inputLine);

    in.close();


    }
    catch(IOException e)
    {
        e.printStackTrace();
    }
 }
}

спасибо за вашу помощь !!!

Ответы [ 2 ]

2 голосов
/ 12 апреля 2011

Я использую POST и FormEntity для получения данных с сервера (например, аутентификации), и у меня никогда не было проблем:

final String httpsURL = "https://the url";
final DefaultHttpClient client = new DefaultHttpClient();
final HttpPost httppost = new HttpPost(httpsURL);

//authentication block:
final List<BasicNameValuePair> nvps = new ArrayList<BasicNameValuePair>();
nvps.add(new BasicNameValuePair("userName", userName));
nvps.add(new BasicNameValuePair("password", password));
final UrlEncodedFormEntity p_entity = new UrlEncodedFormEntity(nvps, HTTP.UTF_8);
httppost.setEntity(p_entity);

//sending the request and retrieving the response:
HttpResponse response = client.execute(httppost);
HttpEntity responseEntity = response.getEntity();

//handling the response: responseEntity.getContent() is your InputStream
final InputSource inputSource = new InputSource(responseEntity.getContent());
[...]

возможно, вы найдете это полезным

2 голосов
/ 12 ноября 2010

Возможно, вы не добавили интернет-разрешение в свои проекты AndroidManifest.xml. Если это так, добавьте следующую строку в качестве дочернего элемента узла <manifest/>:

<uses-permission android:name="android.permission.INTERNET" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...