0

私は自分のアプリケーションに Web サービスを作成します。私の応答は「成功」と「失敗」です。応答が「成功」の場合
、サービスからアプリケーションへの応答をキャッチしたいのです
が、「失敗」の場合は何もしません。
私は試してみます:
(request(response) != null && response.getStatusLine().getStatusCode() == 200)
ネットワークステータスを読み取っただけなので、うまくいきませ..
どうすればこれを行うことができますか??
これは私の完全なコードです:

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();
        if (request(response) != null && response.getStatusLine().getStatusCode() == 200) {
            if(response.getEntity().equals("SUCCESS")){
                Toast.makeText(this, "Inisialisasi sukses", Toast.LENGTH_LONG).show();
                /*helper.insertUser(noImei.getText().toString(),user.getText().toString(),password.getText().toString());
                startActivity(new Intent(UserForm.this,MenuUtama.class));
                user.setText("");
                password.setText("");*/
                System.out.println("sukses");
            }else if(response.getEntity().equals("FAILURE")){
                Toast.makeText(this, "gagal", Toast.LENGTH_LONG).show();
                System.out.println("GAGAL");
            }

        }/*else if(request(response) != null && response.getStatusLine().getStatusCode() == 408){
            Toast.makeText(this, "Request Timeout", Toast.LENGTH_LONG).show();
        }*/else if(request(response) != null && response.getStatusLine().equals("FAILURE"))
        {
            Toast.makeText(this, "Inisialisasi "+request(response), Toast.LENGTH_LONG).show();
            return;
        }
    } 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;

}

フィードバックありがとうございます:)

4

1 に答える 1

0

私はこのようなことをします。

HttpResponse が戻ってきたら、応答を取得しているかどうか、および応答がHttpStatus.SC_OK (200) であるかどうかを確認する必要があります。それを取得したら、エンティティを解析し、「成功」または「失敗」を確認します。あなたのコードでは、Entity Object を "SUCCESS" または "FAILURE" と比較しています。

私のインデントに気をつけてください。元の投稿コードに変更を加えました。

  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();
        if (response.getStatusLine().getStatusCode() == 200) {
            String res = request(response);
            if(res.equalsIgnoreCase("SUCCESS")){
                Toast.makeText(this, "Inisialisasi sukses", Toast.LENGTH_LONG).show();
                /*helper.insertUser(noImei.getText().toString(),user.getText().toString(),password.getText().toString());
                startActivity(new Intent(UserForm.this,MenuUtama.class));
                user.setText("");
                password.setText("");*/
                System.out.println("sukses");
            }else if(res.equalsIgnoreCase("FAILURE")){
                Toast.makeText(this, "gagal", Toast.LENGTH_LONG).show();
                System.out.println("GAGAL");
            }

        }/*else if(response.getStatusLine().getStatusCode() == 408){
            Toast.makeText(this, "Request Timeout", Toast.LENGTH_LONG).show();
        }*/else {
            Toast.makeText(this, "Inisialisasi "+response.getStatusLine(), Toast.LENGTH_LONG).show();
            return;
        }
    } 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;

}
}
于 2012-04-30T01:55:19.277 に答える