1

phpページへのPOSTを実行するクラスがあります。このページは、投稿されたデータに対して何らかのアクションを実行し、結果(OK、KOなど)を返す必要があります。結果をPHPで返送するにはどうすればよいですか?また、Androidで結果を使用するにはどうすればよいですか?

Android側では、これを持っています。これはデータを投稿します。

public int postData(String id, String webrispid, String userid) {
            // Create a new HttpClient and Post Header
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://www.server.com/postpage.php");
            int responseCode = 0;
            try {
                // Add your data
                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                nameValuePairs.add(new BasicNameValuePair("id", id));               
                nameValuePairs.add(new BasicNameValuePair("user", userid));
                nameValuePairs.add(new BasicNameValuePair("webrisid", webrispid));
                try {
                    nameValuePairs.add(new BasicNameValuePair("token",AeSimpleSHA1.SHA1(userid) ));
                } catch (NoSuchAlgorithmException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                // Execute HTTP Post Request
                HttpResponse response = httpclient.execute(httppost);
                responseCode = response.getStatusLine().getStatusCode();
                System.out.println(response);

            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
            } catch (IOException e) {
                // TODO Auto-generated catch block
            }
            return responseCode;
        }

実際、postpage.phpは次のようになります。

<?php

if ( isset($_POST['user']) ) {
// try to store the data posted

//if data is stored return "ok"

// else return "ko"

} else {
// error
}
?>

したがって、Android側では、同じデータの送信を停止し、残りのデータの処理を開始して、最終的にページに送信する必要があります...

4

3 に答える 3

2

「OK」または「KO」の場合は、次のように実行できます。

<?php
  if ( isset($_POST['user']) ) { // try to store the data posted
    //do some test
    echo "OK"; //or KO
  } else { 
    echo "ERROR"; 
  }
?>

androidの部分は次のようになります。

// Execute HTTP Post Request
String status = httpclient.execute(httpPost, new BasicResponseHandler());
System.out.println(status); //will be OK or KO or ERROR
于 2013-01-08T10:53:40.153 に答える
0

アクションの最後にPHPファイルから戻るときは

echo  json_encode("return status or some specific value");` 

Android側では、それを解析しjsonてステータス結果を取得します。

于 2013-01-08T10:47:57.017 に答える
0

これを参照してください:

public int postData(String id, String webrispid, String userid) {
        // Create a new HttpClient and Post Header
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://www.server.com/postpage.php");
        int responseCode = 0;
        try {
            // Add your data
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
            nameValuePairs.add(new BasicNameValuePair("id", id));               
            nameValuePairs.add(new BasicNameValuePair("user", userid));
            nameValuePairs.add(new BasicNameValuePair("webrisid", webrispid));
            try {
                nameValuePairs.add(new BasicNameValuePair("token",AeSimpleSHA1.SHA1(userid) ));
            } catch (NoSuchAlgorithmException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

            // Execute HTTP Post Request
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();
        Log.e("JSON", json);
    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);

                    String status = jObj.getString("status");   




    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }




        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
        } catch (IOException e) {
            // TODO Auto-generated catch block
        }
        return responseCode;
    }

ここで、「ステータス」は、echo json_encode() 関数を使用して php ファイルから返された jsonObject です。

于 2013-01-08T10:56:11.073 に答える