1

如果我嘗試連接jpeg Camera,這個連接工作正常。但是當我連接到Mjpeg(jpeg-stream)相機時,我無法顯示「System.out.println(」onreturn oncesi「 + httpConnection.getResponseCode());」在輸出控制檯上。 我正在使用模擬器和MDS。我可以在MDS上展示,...流即將到來。我有一個關於HTTPConnection和getResponseCode在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); 
} 

回答

1

一個問題是您沒有正確設置您的請求標頭。

您的發佈信息不應該是httpConnection.setRequestMethod(HttpConnection.GET);httpConnection.setRequestMethod(HttpConnection.POST);

而且你還應該設置內容長度httpConnection.setRequestProperty("Content-Length", Integer.toString(postmsg.length));

雖然我們是在它我會繼續前進,設置這些:

內容類型:也許是「圖像/ JPEG 」。不知道它應該是什麼MJPEG ... httpConnection.setRequestProperty("Content-Type", "image/jpeg");

的UserAgent我發現一些網站阻止RIM(Java/XXX),默認的用戶代理,以爲它是一隻蜘蛛,所以我喜歡設置用戶代理。 httpConnection.setRequestProperty("User-Agent", "MyCoolApp/V1 (App_RIM)");

您使用的是什麼版本的JDE?這是通過HTTPS?我問,因爲在4.5之類的舊版本中,您必須以不同方式創建http和https。在新版本中,您應該使用新的ConnectionFactory,而不是Connector。

祝你好運,我希望你弄明白!

+0

我正在使用4.6 ... ConnectionFactory在4.6中不起作用,我無法取回響應代碼... – atasoyh 2010-11-22 10:17:16

+0

@atasoyh如果打開HTTPS連接,請確保將連接器的結果轉換爲正確的Connection類。我假設您使用授權後,您的連接是通過HTTPS?如果是這樣,投到(HttpsConnection)不(HttpConnection)。同時在谷歌搜索「Marcus Watkins和ConnectionFactory」(適用於4.6),它不是完美的,但它會引導你朝着正確的方向發展。 – eSniff 2010-11-22 18:12:05