2

Web サービス経由で mysql からデータを取得するクラスを実装しようとしています。以前は http 投稿を使用してテーブルから情報を取得していましたが、今回はユーザーが editText に文字列を入力し、検索を押してテキストビューを押してクエリを表示することを意図しています。たとえば、mysql テーブルに 2 つの列があるとします。 : 姓名; Firstname を検索して姓を取得できるようにしたい (EditText に Firstname を入力し、その人の姓を表示する) PHP スクリプトを開発しましたが、入力に基づいて HTTP get メソッドを使用することは可能ですか?ストリング?どうやって?PHPリンクに直接向かうチュートリアルしか見たことがありません

4

2 に答える 2

1

GETを使用するには、値をURLにエンコードするだけです。

String url = "http://myserver.net/script.php?first=" + URLEncoder.encode(first) +
             "&last=" + URLEncoder.encode(last);

次に、HttpClientでHttpGetオブジェクトを使用します。

HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(new HttpGet(url));

応答の処理は、投稿した場合と同じです。

于 2012-04-12T16:45:58.587 に答える
1

これは、投稿リクエストを使用して php ファイルに渡すことができる NameValuePairs を使用してそれを行う方法の例です。

private void sendData(ArrayList<NameValuePair> data)
{
     // 1) Connect via HTTP. 2) Encode data. 3) Send data.
    try
    {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new      
        HttpPost("http://www.blah.com/AddAccelerationData.php");
        httppost.setEntity(new UrlEncodedFormEntity(data));
        HttpResponse response = httpclient.execute(httppost);
        Log.i("postData", response.getStatusLine().toString());
            //Could do something better with response.
    }
    catch(Exception e)
    {
        Log.e("log_tag", "Error:  "+e.toString());
    }  
}

ここで、このメソッドを使用して情報 (つまり、パラメーターを php ファイルに渡す) を使用するとします。

  //Add data to be send.
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
    nameValuePairs.add(new BasicNameValuePair("parameter",editTextValue));
    this.sendData(nameValuePairs);

PHP側では、次のように呼び出してこのパラメーター値を取得できます。

 //Retrieve the data.
 $parameter = $_POST['parameter'];
 //Now call on your query or function or w/e it is using this parameter.
于 2012-04-12T16:41:02.310 に答える