Я пытаюсь отправить данные на сервер PHP с BufferedWriter
через приложение для Android.
На стороне PHP ничего не отображается. Я получаю данные с сервера PHP, но проблема в том, когда я отправляю данные.
Вот код Java:
public class JsonTaskPost extends AsyncTask<String, String, String>
{
protected void onPreExecute() {
super.onPreExecute();
}
protected String doInBackground(String... params)
{HttpURLConnection connection = null;
BufferedReader reader = null;
BufferedWriter writer = null;
try {
URL url = new URL(params[0]);
connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setRequestProperty("Accept-Charset", "UTF-8");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
//connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
//connection.setRequestProperty("Accept", "application/json");
connection.setRequestMethod("POST");
forum_name = getIntent().getStringExtra(EXTRA_MESSAGE);
String data = URLEncoder.encode("forum_name", "UTF-8") + "=" + URLEncoder.encode(forum_name, "UTF-8");
//JSONObject data = new JSONObject();
//data.put("forum_name",forum_name);
OutputStream outStream = connection.getOutputStream();
writer= new BufferedWriter(new OutputStreamWriter(outStream));
writer.write(data);
connection.connect();InputStream inStream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(inStream));
StringBuffer buffer = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null) {
buffer.append(line + "\n");
Log.d("Response: ", "> " + line);
}
return buffer.toString();
}
//catch (org.json.JSONException e){
// e.printStackTrace();
//}
catch (MalformedURLException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
finally
{
if (connection != null) {
connection.disconnect();
}
try {
if (reader != null) {
reader.close();
}
if (writer != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
}
}
PHP-код был упрощен до нескольких строк:
<?php
include_once("config2.php");
include_once("connect.php");
echo($_POST);
?>
Соединение в порядке, потому что я получаю данные. Ответ, который я получаю в Android LogCat:
Примечание: преобразование массива в строку в C: \ xampp \ htdocs \ phpBB \ android_api \ fetch_topics.php в строке 6
Я получаю пустой массив. Я также попытался отправить данные в формате JSON.
Задача ещё не решена.
Других решений пока нет …