Je télécharge un fichier à partir d'un téléphone Nokia N97 vers le serveur, tout fonctionne bien, mais après le téléchargement du fichier, je veux obtenir une réponse du serveur. Le problème est que je reçois une réponse seulement après une demi-minute ou plus. De ce que je vois les blocs de code dans httpConnection.getResponseCode() en attente de réponse. Je l'ai testé sur un Sony Ericsson et j'obtiens une réponse très rapide donc je suppose que c'est un problème avec le Nokia N97. (n'est pas un problème de serveur, car il fonctionne bien sur d'autres téléphones)J2ME HttpConnection getResponseCode() bloque attente réponse du serveur sur Nokia N97
Est-ce que quelqu'un sait pourquoi cette chose n'arrive que sur Nokia?
Voici un extrait de code:
UploadFile public() {
httpConn = (HttpsConnection) Connector.open(url, Connector.READ_WRITE);
...
//set httpConn parameters and request method
...
writeParametersAndFileName(os, "text/plain");
**writeFileToStream(os);**
os.write("\r\n".getBytes());
os.write("--".getBytes());
os.write(boundary.getBytes());
os.write("--".getBytes());
os.write("\r\n".getBytes());
*//here code blocks on Nokia N97. Same thing happens if I use os.flush() after
// I send chunks of the file*
.....
codeResp = httpConn.getResponseCode();
// check condition
checkResponseHeader();
}
publique writeFileToStream() {
InputStream is = null;
FileConnection c = null;
try
{
c = (FileConnection) Connector.open("file:///"+ sourcePath, Connector.READ);
if(c.exists()) {
is = c.openInputStream();
long fs = c.fileSize();
while (total < fs) {
byte[] data = new byte[512];
int readAmount = is.read(data,0,512);
total += readAmount;
os.write(data, 0, readAmount);
}
//os.flush();
}
catch (IOException ex) {
//
}
finally
{
//close connection
}
}