2010-01-20 7 views
1

Je fais une requête HTTP depuis une application j2me pour CDC. La méthode demande GET Woks très bien, mais quand je suis en utilisant la méthode post je reçois le message:POST Demande HTTP de j2me

Code ligne Statut: 413 Statut Message ligne: requête trop grand

Le message que je vous envoie est seulement 5 caractères de long donc je ne sais pas quel est le problème.

Le code est listé ci-dessous.

HttpConnection connection = null; 
InputStream inputstream = null; 
    try 
    { 
    connection = (HttpConnection) Connector.open(someURL); 
    //HTTP Request 
    connection.setRequestMethod(HttpConnection.POST); 

    connection.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0"); 
    connection.setRequestProperty("Content-Language", "zh-tw"); 
    connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); 

    if (cookie != null){ 
     connection.setRequestProperty("cookie", cookie); 
    } 

    String msg = "u=123"; 
    connection.setRequestProperty("Content-length", String.valueOf(msg.getBytes().length)); 
    System.out.println(msg.getBytes().length); 
    OutputStream out = connection.openOutputStream(); 
    out.write(msg.getBytes()); 
    out.flush(); 
     // HTTP Response 
    System.out.println("Status Line Code: " + connection.getResponseCode()); 
    System.out.println("Status Line Message: " + connection.getResponseMessage()); 
    if (connection.getResponseCode() == HttpConnection.HTTP_OK) 
    { 
    //some code 
    } 
    } 
    catch(IOException error) 
    { 
    /*log error*/ 

    } 
    finally 
    { 
    if (inputstream!= null) 
    { 
     try 
     { 
     inputstream.close(); 
     } 
     catch(Exception error) 
     { 
     /*log error*/ 

     } 
    } 
    if (connection != null) 
    { 
     try 
     { 
     connection.close(); 
     } 
     catch(Exception error) 
     { 
     /*log error*/ 
     } 
    } 
    } 

Répondre

2

supprimer cette ligne

connection.setRequestProperty("Content-length", String.valueOf(msg.getBytes().length)); 

et essayez à nouveau votre code.

+0

Cette solution a fonctionné. Merci! – Max