【问题标题】:local connection timed out after 120000 while reading the the image from the remote server从远程服务器读取图像时本地连接在 120000 后超时
【发布时间】:2011-12-08 09:29:08
【问题描述】:

我正在 BlackBerry 5.0 中开发应用程序并希望显示来自 url 的图像。使用 httpconnection 从 url 读取图像时,出现异常“本地连接在 120000 后超时”

异常发生在“httpConnection.getResponseCode()”行。

我的代码如下:

private byte[] getimagefromurl(String PhotoUrl)
{

   String url = "http://www.mywebsite.com/images/Folder/xyz.jpg";
   try 
   {
        httpConnection = (HttpConnection) Connector.open(url, Connector.READ_WRITE);
         System.out.println("url>>>>>>>> "+url);
        httpConnection.setRequestMethod(HttpConnection.GET);
         System.out.println("Response>>>>>>>> "+String.valueOf(httpConnection.getResponseCode()));
        if(httpConnection.getResponseCode() == HttpConnection.HTTP_OK) 
        {

            InputStream input = httpConnection.openInputStream();
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int j = 0;
            while((j=input.read()) != -1)
            {
                baos.write(j);
            }
            byteArray = baos.toByteArray();
            baos.close();

        }    
   }
   catch(Exception e)
   {
       System.out.println("in catch>>>>"+e.toString());
   }
   return byteArray;               
}

【问题讨论】:

    标签: blackberry


    【解决方案1】:

    当您使用 WIFI 时,像下面的示例一样附加 url 扩展名

     httpConnection = (HttpConnection) Connector.open(url+";interface=wifi", Connector.READ_WRITE);
    

    扩展只检查这个网址 connection extensions

    【讨论】:

      【解决方案2】:

      是的,答案就是这样。连接超时。检查您的网络服务是否正常工作。如果您在设备或模拟器上进行测试,请确保您可以从默认的黑莓浏览器中访问 URL。

      如果您在模拟器中进行测试,请确保您已启动 MDS-CS 模拟器。

      看看这段有效的代码

      import java.io.InputStream; 
      import javax.microedition.io.Connector;
      import javax.microedition.io.StreamConnection;
      
      public class HTTPClient {
        public static String getPage(String url) {
          String response = "";
      
          try {
              StreamConnection s = (StreamConnection)Connector.open(url);
      
              InputStream input = s.openInputStream();
      
              byte[] data = new byte[256];
              int len = 0;
              StringBuffer raw = new StringBuffer();
      
              while( -1 != (len = input.read(data))) {
                  raw.append(new String(data, 0, len));
              }
      
              response = raw.toString();
      
              input.close();
              s.close();
          } catch(Exception e) { }
      
          return response;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-12-07
        • 2015-10-21
        • 2019-02-01
        • 1970-01-01
        • 2019-05-30
        • 2021-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多