Blackberry не может отправить URL-адрес на сервер непрерывно - PullRequest
0 голосов
/ 01 декабря 2011

это код, который я написал для отправки запроса URL с помощью потока:

   while(true)
       { 
         String url="http://192.168.1.7:8084/SFTS/updateLocation.jsp?empid=12304&lat=16.23&lon=21.998;interface=wifi";
         try{

             StreamConnection conn = (StreamConnection)Connector.open(url, Connector.READ_WRITE);
             conn.openInputStream();
             Thread.sleep(30*1000); 
             conn.close();
            }catch(Exception e)
                 {
                  e.printStackTrace();   
                 }
        try {
            Thread.sleep(30*1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
         }

код, который я использовал для этой темы:

    Calendar cal=Calendar.getInstance();
    long time=cal.get(Calendar.HOUR);
   add(new RichTextField(String.valueOf(time)));

(new test()).start();

с помощью этого кода я могу успешно отправить один запрос, но после этого сервер не получает другой запрос. пожалуйста, предоставьте мне решение.

1 Ответ

2 голосов
/ 01 декабря 2011

Во-первых, когда вы используете подобный цикл while, вы не должны помещать сон в метод try.

 while(true)
   { 
    try{
        String url="http://192.19.18.10:8084/SFTS/updateLocation.jsp?empid=12304&lat="+lan+".23&lon=21.998;interface=wifi";
        StreamConnection conn = (StreamConnection)Connector.open(url, Connector.READ_WRITE);
        conn.openInputStream();;
    }catch(Exception e)
    {
        e.printStackTrace();   
    }
    try {
        Thread.sleep(30*1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
     }

Во-вторых, вы постоянно пытаетесь создать новый поток безпервое закрытие предыдущего соединения.Либо прочитайте о том, как StreamConnection работает эффективно, либо просто используйте ConnectionFactory, а не StreamConnection.

    ConnectionFactory connFact = new ConnectionFactory();
    ConnectionDescriptor connDesc;
    connDesc = connFact.getConnection(url);
    if (connDesc != null) {
                        try {
                            HttpConnection httpConn;
                            httpConn = (HttpConnection) connDesc.getConnection();
                            httpConn.close();

                        } catch (IOException e) {
                                System.err.println("Caught IOException: " + e.getMessage());
                        }

Выше приведено для OS 5 и выше, в вашем случае ... так как соединение кажется работающимв первый раз в вашем существующем коде я попытался бы просто закрыть соединение, используя:

conn.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...