2011-07-28 153 views
0

我有一個簡單的應用程序編寫連接到Web服務(寧靜)。該應用程序在黑莓模擬器上正常工作,但我有問題在黑莓9300上使用它。黑莓HTTP連接問題

當應用程序試圖調用Web服務時,我不斷收到錯誤「java.io.ioexception:tunnel down」。

我打電話的服務是一個簡單的HTTP帖子,我試圖通過WIFI運行(WIFI連接對於瀏覽互聯網工作正常)。

我使用連接字符串「http://127.0.0.1:8080/test/restws;interface=wifi」,IP地址更改爲我打電話的服務器的實際IP地址。我可以在我的筆記本電腦瀏覽器上的此服務器上調用寧靜的Web服務。

我使用的代碼類似於下面的&在模擬器上正常工作。模擬器和手機上的代碼之間唯一改變的是連接字符串(使用「interface = wifi」與「deviceside = true」相對)

這是代碼問題還是我需要的設置改變手機?任何想法,我需要做什麼來克服這一點。

感謝

StreamConnection s = (StreamConnection) Connector 
     .open(connectionString); 
    httpConn = (HttpConnection) s; 
    httpConn.setRequestMethod("POST"); 
    httpConn.setRequestProperty("Content-Length", Integer.toString(postData.length())); 

    OutputStream output = httpConn.openOutputStream(); 
    output.write(postData.getBytes()); 
    output.flush(); 
    output.close(); 

    String response = httpConn.getResponseMessage(); 
    int statusCode = httpConn.getResponseCode(); 
    if (statusCode != HttpConnection.HTTP_OK) { 
    } 

    InputStream is = httpConn.openInputStream(); 
    int ret = 0; 
    while ((ret = is.read(buf)) > 0) { 
    os.write(buf, 0, ret); 
    } 

    result = new String(os.toByteArray()); 
+0

你有沒有得到任何解決您的問題,請分享。謝謝。 – param

回答

1

我在here。之後問題得到HttpConnection的一切都同我猜。試試這個:

ConnectionFactory cf = new ConnectionFactory(); 
ConnectionDescriptor cd = cf.getConnection("YourUrl"); 
httpConnector = (HttpConnection) cd.getConnection(); 
httpConnector.setRequestMethod(HttpConnection.POST); 
+0

嗨Mucie,我嘗試了這一點,我似乎或多或少都有同樣的問題。模擬器上的一切都很好,但它並不適用於實際的手機。 – user805703

+0

你看過[這裏](http://www.localytics.com/blog/2009/how-to-reliably-establish-a-network-connection-on-any-blackberry-device/)。 – mce

0

嘿嗯,我知道DONOT如果能解決你的問題,但也試試這個標籤與接口=無線網絡,裝置側=真,也有「ConnectionType = MDS公開」。希望它能起作用。乾杯