1

si j'essaie de connecter la caméra jpeg, cette connexion fonctionne correctement. Mais quand je me connecte à un appareil photo Mjpeg (jpeg-stream), je ne peux pas montrer "System.out.println (" onreturn oncesi " + httpConnection.getResponseCode());" sur la console de sortie. J'utilise Emulator et MDS. Je peux montrer sur MDS, ... le flux arrive.J'ai une question à propos de httpConnection et getResponseCode sur BlackBerry

url = getUrl(); 
queryString = encodeURL(queryString);  
byte postmsg[] = queryString.getBytes("UTF-8"); 
httpConnection = (HttpConnection) Connector.open(url 
+ ";deviceside=false", Connector.READ_WRITE); 
httpConnection.setRequestMethod(HttpConnection.GET); 
httpConnection.setRequestProperty("Authorization", getBase64Encode()); 
os = httpConnection.openDataOutputStream(); 

for (int i = 0; i < postmsg.length; i++) { 
os.write(postmsg[i]); 
} 
{ 
if (!cancel) { 
    System.out.println(httpConnection.getURL()+ 
     " *****"+httpConnection.getPort()); 
    System.out.println("onreturn oncesi" 
     + httpConnection.getResponseCode()); 
    onReturn(httpConnection.getResponseCode(), httpConnection 
     .openInputStream(),(int) httpConnection.getLength()); 

    System.out.println("onreturn sornrası"); 
} 
os.close(); 
httpConnection.close(); 
} 
} catch (Exception e) { 
System.out.println("hata " + e.getMessage()); 
try { 
    httpConnection.close(); 
    Thread.sleep(60); 
} catch (Exception ie) { 
} 
onError(e); 
} 

Répondre

1

Un problème est que vous ne définissez pas correctement les en-têtes de votre demande.

Vos données de publication ne doivent donc pas être httpConnection.setRequestMethod(HttpConnection.GET); être httpConnection.setRequestMethod(HttpConnection.POST);.

Et vous devez également définir la Content-Length: httpConnection.setRequestProperty("Content-Length", Integer.toString(postmsg.length));

Et pendant que nous y sommes, j'aller de l'avant et paramétrés:

type de contenu: peut-être que « image/jpeg ". Je ne sais pas ce qu'elle devrait être pour MJPEG ... httpConnection.setRequestProperty("Content-Type", "image/jpeg");

UserAgent j'ai trouvé que certains sites bloquent l'agent utilisateur par défaut dans RIM (Java/xxx), pensant qu'il est une araignée, je tiens à mettre la agent utilisateur. httpConnection.setRequestProperty("User-Agent", "MyCoolApp/V1 (App_RIM)");

Quelle version de JDE utilisez-vous? Est-ce sur HTTPS? Je demande parce que sur les versions plus anciennes comme 4.5, vous avez dû créer http et https différemment. Dans les versions les plus récentes, vous devriez probablement utiliser la nouvelle ConnectionFactory, au lieu de Connector.

Bonne chance et j'espère que vous l'aurez compris !!!

+0

J'utilise 4.6 ... ConnectionFactory ne fonctionne pas dans 4.6, et je ne peux pas prendre le code responce ... – atasoyh

+0

@atasoyh si votre ouverture d'une connexion HTTPS assurez-vous de transtyper le résultat de Connector à la bonne classe Connection. Je suppose que depuis que vous utilisez l'autorisation, votre connexion est sur HTTPS? Si tel est le cas, transtypez vers (HttpsConnection) not (HttpConnection). Cherchez aussi "Marcus Watkins et ConnectionFactory" sur Google (qui fonctionne pour 4.6), ce n'est pas un préfet mais ça vous mènera dans la bonne direction. – eSniff