gpt4 book ai didi

java - 如何将字符串从 Android 发送到 PHP?我的 PHP 脚本应该如何处理它?

转载 作者:行者123 更新时间:2023-11-30 10:20:33 24 4
gpt4 key购买 nike

我需要将从android中的EditText获取的字符串发送到PHP,用作查询数据库的id。所以,我从 EditText 中得到了如下字符串:

childIDVal = childID.getText().toString();
Toast.makeText(getApplicationContext(),childIDVal,Toast.LENGTH_LONG).show();
// To do : transfer data to PHP
transferToPhp(childIDVal);

那么,我的 transferToPhp() 应该包含什么?还有 php 代码是:

<?php 

if( isset($_POST["ChildID"]) ) {
$data = json_decode($_POST["ChildID"]);
$data->msg = strrev($data->msg);

echo json_encode($data);

}

还好吗?我是 android 和 Php 的新手,所以我现在需要一些帮助。谢谢!

最佳答案

我建议您使用 AsyncTask,它使用 HttpClient 到达您服务器中现有的 PHP 文件:

    /*Sending data to PHP and receives success result*/
private class AsyncDataClass extends AsyncTask<String, Void, String> {

@Override
protected String doInBackground(String... params) {
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, 5000);
HttpConnectionParams.setSoTimeout(httpParameters, 5000);
HttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpPost httpPost = new HttpPost(params[0]);
String jsonResults = "";
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
// SENDING PARAMETERS WITH GIVEN NAMES
nameValuePairs.add(new BasicNameValuePair("paramName_1", params[1]));
nameValuePairs.add(new BasicNameValuePair("paramName_2", params[2]));
// ...
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpClient.execute(httpPost);
jsonResults = inputStreamToString(response.getEntity().getContent()).toString();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return jsonResults;
}

// DO SOMETHING BEFORE PHP RESPONSE
@Override
protected void onPreExecute() {
super.onPreExecute();
}

// DO SOMETHING AFTER PHP RESPONSE
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if(result.equals("") || result.equals(null)){
return;
}

// Json response from PHP
String jsonResult = returnParsedJsonObject(result);

// i.e.
if (jsonResult.equals("some_response") {
// do something
}
}

// READING ANSWER FROM PHP
private StringBuilder inputStreamToString(InputStream is) {
String rLine = "";
StringBuilder answer = new StringBuilder();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
try {
while ((rLine = br.readLine()) != null) {
answer.append(rLine);
}
} catch (IOException e) {
e.printStackTrace();
}
return answer;
}
}

// GET ALL RETURNED VALUES FROM PHP
private String returnParsedJsonObject(String result){
JSONObject resultObject;
String returnedResult = "0";
try {
resultObject = new JSONObject(result);
returnedResult = resultObject.getString("response");
String value1 = resultObject.getString("value1");
String value2 = resultObject.getString("value2");
//...
// do something with retrieved values
} catch (JSONException e) {
e.printStackTrace();
}
return returnedResult;
}

要发送一些参数,请使用:

AsyncDataClass asyncRequestObject = new AsyncDataClass();
asyncRequestObject.execute("server_url", param1, param2,...);

希望对你有帮助。

关于java - 如何将字符串从 Android 发送到 PHP?我的 PHP 脚本应该如何处理它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48162602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com