1

Wenn ich versuche, jpeg-Kamera zu verbinden, funktioniert diese Verbindung richtig. Aber wenn ich eine Verbindung zu einer Mjpeg (JPEG-Stream) Kamera, kann ich nicht zeigen "System.out.println (" onreturn oncesi " + httpConnection.getResponseCode());" auf der Ausgabekonsole. Ich benutze Emulator und MDS. Ich kann auf MDS zeigen, ... Stream kommt.Ich habe eine Frage über httpConnection und getResponseCode auf 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); 
} 

Antwort

1

Ein Problem ist, dass Sie Ihre Anfrage Header nicht richtig setzen.

Ihre Buchungsdaten, also sollten httpConnection.setRequestMethod(HttpConnection.GET); nicht httpConnection.setRequestMethod(HttpConnection.POST); sein.

Und Sie sollten auch die Content-Length gesetzt: httpConnection.setRequestProperty("Content-Length", Integer.toString(postmsg.length));

Und wenn wir schon dabei sind, würde ich voran gehen und setzen diese:

Inhaltstyp: vielleicht als „image/jpeg ". Nicht sicher, was es für MJPEG sein sollte ... httpConnection.setRequestProperty("Content-Type", "image/jpeg");

Useragent ich gefunden habe, dass einige Websites, um den Standard-User-Agent in RIM (Java/xxx) blockieren, ist es eine Spinne zu denken, so Ich mag die festlegen User-Agent. httpConnection.setRequestProperty("User-Agent", "MyCoolApp/V1 (App_RIM)");

Welche Version der JDE verwenden Sie? Ist das über HTTPS? Ich frage, denn auf älteren Versionen wie 4.5 mussten Sie http und https anders erstellen. In den neueren Versionen sollten Sie wahrscheinlich die neue ConnectionFactory anstelle von Connector verwenden.

Viel Glück und ich hoffe du findest es heraus !!!

+0

Ich benutze 4.6 ... ConnectionFactory funktioniert nicht in 4.6, und ich kann keine Antwort Code ... – atasoyh

+0

@atasoyh, wenn Sie eine HTTPS-Verbindung öffnen, stellen Sie sicher, dass Sie das Ergebnis von Connector auf die richtige Connection-Klasse. Ich gehe davon aus, dass Ihre Verbindung seit der Verwendung der Autorisierung über HTTPS ist? Ist dies der Fall, wird (HttpsConnection) nicht umgewandelt (HttpConnection). Suchen Sie auch in Google nach "Marcus Watkins und ConnectionFactory" (was für 4.6 funktioniert), es ist kein Präfekt, aber es wird Sie in die richtige Richtung führen. – eSniff