Как отправить запрос на другую страницу на зашедшем сайте - PullRequest
0 голосов
/ 19 апреля 2011

Сначала я хочу подключить к сайту.
После, я хочу получить данные с другой страницы с этим подключением

пример:

1 - подключиться к http://site.com/Login с помощью пароля пользователя
2 - получить секретные данные от http://site.com/Secret

Как мне это сделатьпожалуйста, помогите мне ...

OutputStreamWriter request = null;
    url = new URL("http://site.com/Login"); 
    String response = null; 
    EditText user = (EditText)this.findViewById(R.id.user);
    EditText pass = (EditText)this.findViewById(R.id.pass);
    String parameters ;

    try {
        System.setProperty("http.keepAlive", "true");

        url = new URL("http://site.com/Home/Login"); 
        httppost = (HttpURLConnection) url.openConnection();
        httppost.setDoInput(true);
        httppost.setDoOutput(true);
        httppost.setRequestMethod("POST");
        httppost.setRequestProperty("User-Agent", "Mozilla/5.0 Linux U Android 2.3.3 tr-tr HTC_DesireHD_A9191 Build/GRI40 AppleWebKit/533.1 KHTML, like Gecko Version/4.0 Mobile Safari/533.1");
        httppost.setRequestProperty("Accept_Language", "en-US");
        httppost.setRequestProperty("Connection", "Keep-Alive"); 
        httppost.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

        request = new OutputStreamWriter(httppost.getOutputStream());

        parameters = "username="+user.getText()+"&password="+pass.getText();
        request.write(parameters);
        request.flush();
        request.close(); 

        String line = "";               
        InputStreamReader isr = new InputStreamReader(httppost.getInputStream());
        BufferedReader reader = new BufferedReader(isr);
        StringBuilder sb = new StringBuilder();
        while ((line = reader.readLine()) != null)
        {
            sb.append(line + "\n");
        }
        response = sb.toString();

        Toast.makeText(this,response, Toast.LENGTH_LONG).show();             

        isr.close();
        reader.close();

    } catch (Exception e) {
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
    }

1 Ответ

0 голосов
/ 20 апреля 2011

Вы должны использовать WebView и извините, но вы не можете получить содержимое веб-просмотра.

Если вы владеете серверным кодом и хотите получить доступ из java, вам следует использовать токен доступа для более безопасного соединения и получать данные с помощью JSON или XML. Или есть намного более безопасный тип соединения, который является OAuth2.

Если у вас нет собственного сервера, вы должны отобразить URL http://site.com/Login в веб-просмотре. Когда пользователь входит в систему, чем у вас есть cookie в вашем веб-просмотре. Вы можете использовать CookieManager http://developer.android.com/reference/android/webkit/CookieManager.html и отправить данные с помощью этого куки и получить результат. Этот метод не прост и может различаться в зависимости от реализации на стороне сервера.

...