SORU
24 Mart 2009, Salı


Nasıl bir http isteği Android çerezleri kullanarak yapabilirim?

Düzgün çerezleri (örn. taşıma sırasında bir uzak sunucuya bir http isteği yapmak istiyorum çerezleri depolama sunucusu tarafından gönderilen ve bir sonraki isteği yaptığımda kurabiyeleri gönderme). Herhangi korumak için iyi olurdu ve tüm çerezleri, ama gerçekten değer verdiğim tek bir oturum çerezi.

Java.net bunu yapmak için tercih edilen yöntem, java kullanıyor gibi görünüyor.net.CookieHandler (soyut temel sınıf) ve java.net.CookieManager (somut uygulama). Android java vardır.net.CookieHandler, ama java gibi değil.net.CookieManager.

Http başlıklarını inceleyerek elle tüm kod olabilir, ama daha kolay bir yolu olmalı gibi görünüyor.

Kurabiye koruyarak Android http isteklerini yapmak için doğru yolu nedir?

CEVAP
26 Mart 2009, PERŞEMBE


Apache HttpClient 4.0, ve bunu yapmak için nasıl anlamaya başardı kullanarak Google Android gemiler "" *örnek 2*: . oturum açma Form tabanlı çıkıyor

http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientFormLogin.java

< / ^ hr .

import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;

/**
 * A example that demonstrates how HttpClient APIs can be used to perform
 * form-based logon.
 */
public class ClientFormLogin {

    public static void main(String[] args) throws Exception {

        DefaultHttpClient httpclient = new DefaultHttpClient();

        HttpGet httpget = new HttpGet("https://portal.sun.com/portal/dt");

        HttpResponse response = httpclient.execute(httpget);
        HttpEntity entity = response.getEntity();

        System.out.println("Login form get: "   response.getStatusLine());
        if (entity != null) {
            entity.consumeContent();
        }
        System.out.println("Initial set of cookies:");
        List<Cookie> cookies = httpclient.getCookieStore().getCookies();
        if (cookies.isEmpty()) {
            System.out.println("None");
        } else {
            for (int i = 0; i < cookies.size(); i  ) {
                System.out.println("- "   cookies.get(i).toString());
            }
        }

        HttpPost httpost = new HttpPost("https://portal.sun.com/amserver/UI/Login?"  
                "org=self_registered_users&"  
                "goto=/portal/dt&"  
                "gotoOnFail=/portal/dt?error=true");

        List <NameValuePair> nvps = new ArrayList <NameValuePair>();
        nvps.add(new BasicNameValuePair("IDToken1", "username"));
        nvps.add(new BasicNameValuePair("IDToken2", "password"));

        httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));

        response = httpclient.execute(httpost);
        entity = response.getEntity();

        System.out.println("Login form get: "   response.getStatusLine());
        if (entity != null) {
            entity.consumeContent();
        }

        System.out.println("Post logon cookies:");
        cookies = httpclient.getCookieStore().getCookies();
        if (cookies.isEmpty()) {
            System.out.println("None");
        } else {
            for (int i = 0; i < cookies.size(); i  ) {
                System.out.println("- "   cookies.get(i).toString());
            }
        }

        // When HttpClient instance is no longer needed, 
        // shut down the connection manager to ensure
        // immediate deallocation of all system resources
        httpclient.getConnectionManager().shutdown();        
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AndyMcMillinTV

    AndyMcMillin

    6 HAZİRAN 2007
  • CruzerLite

    CruzerLite

    1 EKİM 2011
  • Ludique

    Ludique

    21 NİSAN 2009