HTTP GET на Android - PullRequest
       1

HTTP GET на Android

0 голосов
/ 02 апреля 2012

У меня есть метод для вставки данных на сервер, например:

public void doInsert(){

    try {
        // setiap parameter yang akan dikirim melalui http
        // harus encode agar
        // dapat terbaca dengan baik oleh server
        String no_imei = URLEncoder.encode(noImei.getText().toString(), "utf-8");
        String nik = URLEncoder.encode(user.getText().toString(), "utf-8");
        String pass = URLEncoder.encode(password.getText().toString(), "utf-8");
        url += "?no_imei=" + no_imei + "&&nik=" + nik + "&&password=" + pass;
        getRequest(url);
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

Другой метод, который у меня есть:

public void getRequest(String Url) {

    HttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet(url);
    try {
        HttpResponse response = client.execute(request);
        Toast.makeText(this, "Tambah Data " + request(response) + " ",Toast.LENGTH_SHORT).show();
    } catch (Exception ex) {

        //Toast.makeText(this, "Tambah Data Gagal !", Toast.LENGTH_SHORT).show();
      }
}

И вот так:

public static String request(HttpResponse response) {

    String result = "";
    try {
        InputStream in = response.getEntity().getContent();
        BufferedReader reader = new BufferedReader(
        new InputStreamReader(in));
        StringBuilder str = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {

            str.append(line + "\n");

        }
        in.close();
        result = str.toString();
        } catch (Exception ex) {
        result = "Error";
        }
        return result;

}

метод onClick:

private View.OnClickListener onSave=new View.OnClickListener() 
{
    public void onClick(View v) 
    {
        //Dbhelper helper = new Dbhelper(UserForm.this);  
        Cursor c = helper.Login(almagId);

        if (noImei.getText().toString().equals("")||
            user.getText().toString().equals("")||
            password.getText().toString().equals("")
            ) {
            Toast.makeText(UserForm.this, "Data Harus di isi", Toast.LENGTH_LONG).show();

    }else if(c.moveToFirst()){
        if(noImei.getText().equals(c.getString(0))||
                user.getText().equals(c.getString(1))){
            Toast.makeText(UserForm.this, "Data Sudah ada", Toast.LENGTH_LONG).show();
            helper.close();
        }
    }else
    {
        doInsert(); 
        helper.insertUser(noImei.getText().toString(),user.getText().toString(),password.getText().toString());
            //Toast.makeText(UserForm.this, "Data Berhasil disimpan", Toast.LENGTH_LONG).show();

    }
        startActivity(new Intent(UserForm.this,MenuUtama.class));
        user.setText("");
        password.setText("");
         return;
    }
};

В методе onClick при ответе от сервера УСПЕХ я хочу выполнить какое-то действие.Как я могу это сделать?Я пытался с условием , если моя активность не работает.

Ответы [ 3 ]

0 голосов
/ 02 апреля 2012

похоже на то, что логин в вашем if заявлении невелик.

if(request(response).equals("SUCCESS")){ startActivityForResult(new Intent(this,MainMenu.class))} 

во-первых, это не имеет смысла

if(request(response).equals("SUCCESS"))

что вы пытаетесь сделать, привести запрос в ответ ???

второй: * * +1010

.equals("SUCCESS"))

ответ не является String объектом, вы ищете код состояния ??

читать поверх Android HttpResponse

http://developer.android.com/reference/org/apache/http/HttpResponse.html

Пример кода

if (response != null && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
//Do Something
} 
0 голосов
/ 02 апреля 2012

Вы, вероятно, должны пойти с

if (response != null && response.getStatusLine().getStatusCode() == 200) { }
0 голосов
/ 02 апреля 2012

Вы должны добавить свою активность в AndroidManifest.xml .Перейдите по этой ссылке: Использование намерения в приложении Android для показа другого действия

...