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