1

我想登录我的 Blackberryapp,但这个应用程序仍在方法 GET 中,我想将此应用程序更改为方法 POST。因为我的服务器使用方法 POST。这是我的 BB 应用程序中的源代码。

    package com.blackberry.mobile_banking;

import java.io.InputStream;
import java.io.InputStreamReader;

import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;

import net.rim.blackberry.api.browser.URLEncodedPostData;
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.component.Dialog;

public class Check_Login {

    HttpConnection httpconnection;
    InputStream inputstream;

    public Check_Login()
    {
    }
    public void validasi_Login(String username, String password)
    {
        try {
            URLEncodedPostData params=new URLEncodedPostData(URLEncodedPostData.DEFAULT_CHARSET, true);
            params.append("username", username);
            params.append("password", password);
            String url="http://127.0.0.1:80/proyek_akhir/cek_login.php?"+params.toString()+";deviceside=true";
            System.out.println(url);

            //connect to server

            httpconnection=(HttpConnection)Connector.open(url);
            inputstream=httpconnection.openDataInputStream();

            if(httpconnection.getResponseCode()==HttpConnection.HTTP_OK)
            {
                InputStreamReader reader=new InputStreamReader(inputstream, "UTF-8");
                int readCharacter;
                StringBuffer responseBuffer=new StringBuffer();

                while((readCharacter=reader.read())!=-1)
                {
                    responseBuffer.append((char)readCharacter);

                }
                if(responseBuffer.toString().equalsIgnoreCase("SUCCESS"))
                {
                    Screen_Home sc_home=new Screen_Home();
                    UiApplication.getUiApplication().pushScreen(sc_home);
                }
                else if(responseBuffer.toString().equalsIgnoreCase("FAILED"))
                {
                    Dialog.alert("Username or Password wrong");

                }
            }

        } catch (Exception e) {

        }

    }

}

这是我服务器中的源代码

  <?php
    require('db.php');
    $username=$_POST['username'];
    $password=md5($_POST['password']);
    $query="select*from user where username='$username' and password='$password'";
    $hasil=mysql_query($query);
    if(mysql_num_rows($hasil)>0)
    {
        echo "SUCCESS";
    }
    else
    {
        echo "FAILED";
    }
?>
4

3 回答 3

1

除非您的应用程序是 MIDlet 或旧的 5.0 之前的应用程序,否则我会使用较新的ConnectionFactory类来避免传输类型(BES、BIS、Wi-Fi 等)的问题。回到过去,我们必须为每种传输类型附加不同的后缀到 URL。您可以避免创建一个新工厂,您可以配置一次并在代码的其他部分重用:

        ConnectionFactory factory = new ConnectionFactory();
        factory.setPreferredTransportTypes(<array of TransportInfo.TRANSPORT_XXX >);
        factory.setTransportTypeOptions(<options>); //Only required for BIS
        ... 

然后每次你需要一个连接时,你都会像这样获得 HttpConnection 对象:

        ConnectionDescriptor cd = factory.getConnection(<url>);
        HttpConnection httpConn = (HttpConnection) cd.getConnection();
        httpConn.setRequestMethod(HttpConnection.POST);
        //Now proceed as normal

如您所见,请求方法是在每个新HttpConnection实例中配置的,与工厂无关。

于 2013-07-05T07:20:57.197 回答
0

尝试这个 -

httpconnection=(HttpConnection)Connector.open(url);
httpconnection.setRequestMethod(HttpConnection.POST);//this will use post method
于 2013-07-05T06:58:04.393 回答
0

我昨天真的完成了我的 POST 方法。这个答案对我帮助很大,您应该几乎可以按原样使用它:

Blackberry jde:如何使用 MultipartPostData 在服务器中上传图像

于 2013-07-05T08:09:12.483 回答