Négatif De La Taille De La Matrice D'Exception

Je suis nouveau sur Blackberry et j'essaie de poster un terme de recherche à un serveur xml. Mais je reçois cette erreur Request Failed. Reason Java.lang.NegativeArraySizeException.

Je voulais vérifier si la connexion fonctionne avant de m'analyser les données à partir de cette connexion, attends de recevoir le texte de la réponse en xml. Ci-dessous le code:

public void webPost(String word) {
word = encode (word);
String responseText;
try{
HttpConnection connection = (HttpConnection)Connector.open("http://some url.xml");
connection.setRequestMethod(HttpConnection.POST);
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
String postData = "username=loginapi&password=myapilogin&term="+ word;
connection.setRequestProperty("Content-Length",Integer.toString(postData.length()));
connection.setRequestProperty("User-Agent","Profile/MIDP-2.0 Configuration/CLDC-1.0");
OutputStream requestOut = connection.openOutputStream();
requestOut.write(postData.getBytes());
InputStream detailIn = connection.openInputStream();
byte info[]=new byte[(int)connection.getLength()];
detailIn.read(info);
detailIn.close();
requestOut.close();
connection.close();
responseText=new String(info);
requestSuceeded(requestOut.toString(), responseText);
}
catch(Exception ex){
requestFailed(ex.toString());
}
}
private void requestSuceeded(String result, String responseText) {
if(responseText.startsWith("text/xml")) { 
String strResult = new String(result); 
synchronized(UiApplication.getEventLock()) { 
textOutputField.setText(strResult); 
} 
} else{ 
synchronized(UiApplication.getEventLock()) { 
Dialog.alert("Unknown content type: " + responseText); 
} 
} 
} 
public void requestFailed(final String message) { 
UiApplication.getUiApplication().invokeLater(new Runnable() { 
public void run() { 
Dialog.alert("Request failed. Reason: " + message); 
} 
}); 
} 
private String encode(String textIn) {
//encode text for http post
textIn = textIn.replace(' ','+');
String textout = "";
for(int i=0;i< textIn.length();i++){
char wcai = textIn.charAt(i);
if(!Character.isDigit(wcai) && !Character.isLowerCase(wcai) && !Character.isUpperCase(wcai) && wcai!='+'){
switch(wcai){
case '.':
case '-':
case '*':
case '_':
textout = textout+wcai;
break;
default:
textout = textout+"%"+Integer.toHexString(wcai).toUpperCase();//=textout.concat("%").concat(Integer.toHexString(wcai));
}
}else{
textout = textout+wcai;//=textout.concat(wcai+"");
}
}
return textout;
}    

OriginalL'auteur michael92 | 2012-06-26