Как отправить URL параметры на сервер php и получить ответ на Android

Я пытаюсь создать базовое приложение, где я хочу отправить запрос с 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 для этого ответа, прежде чем голосовать за меня.

0

Решение

Я наконец нашел простое решение с помощью комментариев и часов исследования:

Вы можете просто вызвать этот метод с помощью этого:

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..";
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]