Я пытаюсь создать базовое приложение, где я хочу отправить запрос с Android на сервер php, как это: http://www.eg.com/eg.php?a=blabla:blablabla:bla.
Затем, когда я получаю эти данные, я хочу сделать что-то вроде этого:
if(isset($_GET['a'])) {
$a = $_GET['a'];
$array = explode(':', $a);
$data1 = $array[0];
if($data1 == "blabla") {
Send response to android here..
}
}
Проблема в том, что я не знаю, как отправлять данные и обратно с Android на сервер PHP. Я посмотрел на многие ответы, но большинство из них отправляет данные json или использует устаревшую библиотеку apache http, либо не говорит ничего о стороне php-сервера или относится к secnario этого человека. Пожалуйста, вы можете дать мне очень четкий ответ о том, как это сделать, спасибо 🙂
Если есть ответ, который уже охватывает этот вопрос, пожалуйста, предоставьте мой URL для этого ответа, прежде чем голосовать за меня.
Я наконец нашел простое решение с помощью комментариев и часов исследования:
Вы можете просто вызвать этот метод с помощью этого:
HashMap<String , String> postDataParams = new HashMap<String, String>();
postDataParams.put("name", "value");
performPostCall("URL", postDataParams);
Java-код:
public String performPostCall(String requestURL,
HashMap<String, String> postDataParams) {
URL url;
String response = "";
try {
url = new URL(requestURL);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(15000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getPostDataString(postDataParams));
writer.flush();
writer.close();
os.close();
int responseCode=conn.getResponseCode();
if (responseCode == HttpsURLConnection.HTTP_OK) {
String line;
BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream()));
while ((line=br.readLine()) != null) {
response+=line;
Log.e("Res:", response);
}
}
else {
response="";
}
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
private String getPostDataString(HashMap<String, String> params) throws UnsupportedEncodingException {
StringBuilder result = new StringBuilder();
boolean first = true;
for(Map.Entry<String, String> entry : params.entrySet()){
if (first)
first = false;
else
result.append("&");
result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
}
return result.toString();
}
На стороне PHP вы можете получить данные с помощью:
$_POST['name']
Вы можете отправить ответ, просто сделав это:
echo "response here..";
Других решений пока нет …