GET запрос ежевики с Java Me - PullRequest
0 голосов
/ 17 июня 2011

Я пытаюсь получить данные, отправляя GET-запрос в службу php, но, к сожалению, я не получаю никакого результата, я использую Blackberry Simulator 9800, вот мой код,

    HttpConnection conn = null;
    InputStream in = null;
    StringBuffer buff = new StringBuffer();
    String result = "";

    String url = "http://www.devbrats.com/testing/ActorRated/Service/cities.php";
    try{
        conn = (HttpConnection) Connector.open(url,Connector.READ_WRITE, true);
        conn.setRequestMethod(HttpConnection.GET);
        conn.setRequestProperty("User-Agent", "Profile/MIDP-1.0 Confirguration/CLDC-1.0");
        if(conn.getResponseCode() == HttpConnection.HTTP_OK){
            in = conn.openInputStream();
            //parser.parse(in, handler);
            buff.append(IOUtilities.streamToBytes(in));
            result = buff.toString();
        }
        else{
            result = "Error in connection";
        }

    } catch(Exception ex){
        ex.printStackTrace();
    } finally{
        try {
            if(in != null){
                in.close();
            }
            conn.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

Пожалуйста, сообщите мнев чем проблема,

1 Ответ

4 голосов
/ 17 июня 2011

Вы должны будете использовать это: http://www.blackberry.com/developers/docs/5.0.0api/net/rim/device/api/io/transport/ConnectionFactory.html

Чтобы правильно создать сетевое соединение с правильным параметром.

Если вы не используете OS5 +, используйте это: http://www.versatilemonkey.com/HttpConnectionFactory.java

package mypackage;

import java.io.IOException;
import java.io.InputStream;

import javax.microedition.io.HttpConnection;

import net.rim.device.api.io.IOUtilities;
import net.rim.device.api.io.transport.ConnectionFactory;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.container.MainScreen;

/**
 * A class extending the MainScreen class, which provides default standard
 * behavior for BlackBerry GUI applications.
 */
public final class MyScreen extends MainScreen {

    private LabelField lbl;

    /**
     * Creates a new MyScreen object
     */
    public MyScreen() {
        setTitle("MyTitle");
        new Thread(new ConnectThread(this)).start();
        lbl = new LabelField();
        this.add(lbl);
    }

    public void update(Object object) {
        synchronized (UiApplication.getEventLock()){
            lbl.setText((String)object);
        }
    }

    private class ConnectThread implements Runnable {

        private MainScreen screen;

        public ConnectThread(MainScreen screen) {
            this.screen = screen;
        }

        public void run() {
            HttpConnection conn = null;
            InputStream in = null;
            StringBuffer buff = new StringBuffer();
            String result = "";

            String url = "http://www.devbrats.com/testing/ActorRated/Service/cities.php";
            try {
                conn = (HttpConnection) new ConnectionFactory().getConnection(url).getConnection();
                conn.setRequestMethod(HttpConnection.GET);
                conn.setRequestProperty("User-Agent",
                        "Profile/MIDP-1.0 Confirguration/CLDC-1.0");

                if (conn.getResponseCode() == HttpConnection.HTTP_OK) {
                    in = conn.openInputStream();
                    // parser.parse(in, handler);
                    buff.append(IOUtilities.streamToBytes(in));
                    result = buff.toString();
                } else {
                    result = "Error in connection" + conn.getResponseCode();
                }
                ((MyScreen)screen).update(result);

            } catch (Exception ex) {
                ex.printStackTrace();
            } finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                    conn.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
...