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

  • Justin Case

    Justin Case

    3 EKİM 2011
  • LAHWF

    LAHWF

    5 Kasım 2009
  • SerienTrailerMP

    SerienTraile

    7 HAZİRAN 2012