2010-10-15 7 views
1

"Basic YWRtaW46YW RtaW4 =" est le bon code pour mon adresse. Je vérifie le projet j2me.Problème d'authentification .. !! ON ANDROID WITH HTTPURLCONNECTION

Et sur android ma méthode getbase64 renvoie "Basic YWRtaW46YW RtaW4 =" son vrai.

et je l'utilise sur:

httpConnection.setRequestProperty ("autorisation", getBase64Encode());

Enfin le code est responce 401

une idée ???

protected void connect() { 
    InputStream is = null; 
    OutputStream os = null; 
    try { 

    url = new URL(getUrl()); 
    System.out.println(getUrl());// duzelt 
    queryString = encodeURL(queryString); 
    byte postmsg[] = queryString.getBytes("UTF-8"); 
    conn = url.openConnection(); 
    if (!(conn instanceof HttpURLConnection)) 
    throw new IOException("Not an HTTP connection"); 

    httpConnection = (HttpURLConnection) conn; 
    HttpOptions options=new HttpOptions(); 
    httpConnection.setDoInput(true); 
    httpConnection.setDoOutput(true); 
    httpConnection.setRequestMethod("GET"); 
    httpConnection.setRequestProperty("Authorization", 
    getBase64Encode()); 
    httpConnection.connect(); 
    os = httpConnection.getOutputStream();// ///////////////////baglantının 
    System.out.println("response code: "+ httpConnection.getResponseCode()); 
    // connect olup olmadıgını 
    // kontrol et 

    for (int i = 0; i < postmsg.length; i++) { 
    os.write(postmsg[i]); 
    } 
    if (!cancel) { 
    onReturn(httpConnection.getResponseCode(), httpConnection 
     .getInputStream()); 
    } 
    os.close(); 
    // httpConnection.close(); 
    } catch (Exception e) { 
    System.out.println(e.getMessage()); 
    try { 
    httpConnection.disconnect(); 
    Thread.sleep(60); 
    // cancel=true; eklenmesı gerekebilir 
    } catch (Exception ie) { 
    } 
    onError(e); 
    } 

Répondre

1

Il existe une méthode setConnectTimeout(int) sur HttpURLConnection.

Définit la valeur de délai d'attente en millisecondes pour établir la connexion à la ressource pointée par ce URLConnection exemple. Une exception SocketTimeoutException est levée si la connexion n'a pas pu être établie dans ce délai. La valeur par défaut est 0 , ce qui signifie un délai d'attente infini.

httpConnection.setConnectTimeout(10000); /* connection timeout set to 10s */ 
+0

oui, je l'ai essayé, mais il n'y a pas de différence .. :(Je peux montrer Mjpeg fichier, mais je ne peux pas envoyer un lien: ((après avoir essayé avec connexion HttpGet-defaulthttpclıent, et ça marche. – atasoyh

+0

Différentes implémentations mènent à des comportements différents :) Peut-être que timeout de connexion et timeout de lecture (setReadTimeout) doivent être définis pour gérer le cas lorsque le serveur accepte la connexion mais ne répond pas à la requête – Jcs

+1

I finalement utilisé httpclient, pas de problème .. – atasoyh