Как отправить данные с Android Activity на сервер Xampp с помощью класса AsyncTask и веб-службы (php)? - PullRequest
0 голосов
/ 25 марта 2019

Я хочу отправить данные с Android на веб-сервер Xampp с помощью класса Asynctask через веб-сервис. В основной деятельности я вызвал функцию execute класса для передачи переменных в класс.

 public void insertValues(View.OnClickListener view){
        //Toast.makeText(Main2Activity.this,roomName+roomLoc+ssid+bssid+rssid+lat+lon,Toast.LENGTH_SHORT).show();
       Database send = new Database(this);
       send.execute(bssid,ssid,rssid,roomName,roomLoc,lat,lon);
    }

Первый раз, когда я попытался, данные были успешно вставлены в базу данных. Но теперь, когда я запускаю код, я получил значение con_str = "http://ip:8080/tablename/create.php" в сообщении. И данные не отправляются в базу данных. Ниже приведен мой класс AsyncTask с именем Database .

package com.fyp.demooffps;

import android.annotation.TargetApi;
import android.app.AlertDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Build;
import android.widget.TextView;
import android.widget.Toast;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.charset.StandardCharsets;


public class Database extends AsyncTask<String, Void, String> {
    AlertDialog dialog;
    Context context;
    public Database(Context context) { this.context = context;
    }
    @Override
    protected void onPreExecute() {
        dialog = new AlertDialog.Builder(context).create();
        dialog.setTitle("Message");
    }

    @Override
    protected void onPostExecute(String s) {
        dialog.setMessage(s);
        dialog.show();
    }

    @Override
    protected String doInBackground(String... voids) {
    String data = "";
    String result = "";
    String ESSID = voids[0];
    String BSSID = voids[1];
    String RSSID = voids[2];
    String Room_Name = voids[3];
    String Loc_In_Room = voids[4];
    String x_Coordinate=voids[5];
    String y_Coordinate=voids[6];
     //txttry.setText(BSSID+ESSID);
   // Toast.makeText(context.getApplicationContext(),ESSID+BSSID+RSSID+Room_Name+Loc_In_Room+x_Coordinate+y_Coordinate,Toast.LENGTH_SHORT).show();
    String con_Str = "http://10.5.49.23:8080/api2/accesspoints_data/create.php";
    try{
        URL url = new URL(con_Str);
        HttpURLConnection http = (HttpURLConnection) url.openConnection();
        http.setRequestMethod("POST");
        http.setDoInput(true);
        http.setDoOutput(true);
        OutputStream out_Stream = http.getOutputStream();
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out_Stream, "UTF-8"));
        JSONObject obj = new JSONObject();
        try {
            obj.put("BSSID",BSSID);
            obj.put("ESSID",ESSID);
            obj.put("RSSID",RSSID);
            obj.put("Room_Name",Room_Name);
            obj.put("Loc_In_Room",Loc_In_Room);
            obj.put("x_Coordinate", x_Coordinate);
            obj.put("y_Coordinate", y_Coordinate);
        } catch (JSONException e) {

            e.printStackTrace();
        }

        data = obj.toString();

        writer.write(data);
        writer.flush();
        writer.close();
        out_Stream.close();

        InputStream in_Stream = http.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in_Stream, "ISO-8859-1"));
        String line = "";
        while ((line = reader.readLine()) != null)
        {
            result += line;
        }

        reader.close();
        in_Stream.close();
        http.disconnect();
        return result;
    } catch (MalformedURLException e){
        result = e.getMessage();
    } catch (IOException e){
        result = e.getMessage();
    }

        return result;
}
}

Я не знаю, где я не прав. ? Для меня очень важно отправить данные в базу данных до вечера, и я застрял в этом. Спасибо заранее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...