Androidアプリケーションからサーバー上の特定のphp関数を呼び出し、いくつかのパラメーターを送信したいと思います。これまで、HttpClientを使用してphpファイルを開き、Jsonへのデータ転送を実行して、それをアプリに表示できることを達成しました。だから、今私は特定の関数を呼び出してそれにパラメータを送信できるようにしたいのですが、どうすればそれを行うことができますか?ありがとう。
10825 次
3 に答える
4
これは、JSONを使用して新しいユーザー名を登録するために作成したコードです。
public static boolean register(Context myContext, String name, String pwd) {
byte[] data;
HttpPost httppost;
StringBuffer buffer;
HttpResponse response;
HttpClient httpclient;
InputStream inputStream;
List<NameValuePair> nameValuePairs;
try {
httpclient = new DefaultHttpClient();
httppost = new HttpPost(
"http://X.X.X.X/register.php");
// Add your data
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("User", name.trim()));
nameValuePairs.add(new BasicNameValuePair("Password", pwd.trim()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
response = httpclient.execute(httppost);
inputStream = response.getEntity().getContent();
data = new byte[256];
buffer = new StringBuffer();
int len = 0;
while (-1 != (len = inputStream.read(data))) {
buffer.append(new String(data, 0, len));
}
inputStream.close();
}
catch (Exception e) {
Toast.makeText(myContext, "error" + e.toString(), Toast.LENGTH_LONG)
.show();
return false;
}
if (buffer.charAt(0) == 'Y') {
return true;
} else {
return false;
}
}
あなたが気づいたら:
nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("User", name.trim()));
nameValuePairs.add(new BasicNameValuePair("Password", pwd.trim()));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
その部分では、パラメーターを送信できます。
このメソッドは、ユーザーとパスワードをregister.phpに送信するだけです。ユーザーがすでに取得されている場合は、「N」が返されます。それ以外の場合は、ユーザーを作成し、「Y」を返します。
サーバー側では、それらをPOST情報として扱うため、次のようになります。
$user = $_POST['User'];
それはあなたの場合に役立つはずです:)
乾杯!
于 2012-04-25T09:55:49.903 に答える
1
これらの特定のphp関数を必要なパラメーターとともにWebサービスで提示またはラップアップし、Androidからの入力パラメーターを含むそのWebサービスを呼び出して、物事を成し遂げます。
于 2012-04-25T09:23:51.410 に答える
1
この作業には WebServices を使用する必要があります。 http://www.php.net/manual/en/book.soap.php
于 2012-04-25T09:25:05.367 に答える