Я начинаю с Android, и я пытаюсь пример, чтобы получить некоторую информацию из текста редактирования и отправить ее на мой локальный хост и, если моя локальная база данных
Мне кажется, что это что-то повторяет, но что бы я ни делал, это не работает, и OutputStreamWriter работает в Android Studio, когда я проверяю это с помощью отладчика, но ничего не отправляю в мою локальную базу данных.
Ниже я делюсь своими кодами. Ошибка в том, что $ _POST [«email»] не работает, а ошибки в том, что электронная почта не определена ?!
//It's my MainActivity's codes
public class MainActivity extends AppCompatActivity {
Button show;
TextView txt;
EditText edt;
public static Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=MainActivity.this;
edt=(EditText)findViewById(R.id.edt);
show=(Button)findViewById(R.id.show);
txt=(TextView)findViewById(R.id.txt);
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new AsynctaskTest("http://152.144.1.215/sadegh",edt.getText().toString()).execute();
}
});
}
}
вот мои коды AsynctaskGetData:
public class AsynctaskTest extends AsyncTask<String,Integer,String>{
public String link="";
public String email="";
public StringBuilder builder;
ProgressDialog progressDialog;
public AsynctaskTest(String link,String email){
this.link=link;
this.email=email;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog=new ProgressDialog(MainActivity.context);
progressDialog.setTitle("Processing...");
progressDialog.setMessage("Please Wait...");
progressDialog.show();
}
@Override
protected String doInBackground(String... strings) {
try {
String data=URLEncoder.encode("email","UTF-8")+"="+URLEncoder.encode(email,"UTF-8");
URL url=new URL(link);
URLConnection connection=url.openConnection();
connection.setDoOutput(true);
OutputStreamWriter writer=new OutputStreamWriter(connection.getOutputStream());
writer.write(data);
writer.flush();
BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream()));
builder=new StringBuilder();
String line=null;
while ((line=reader.readLine())!=null){
builder.append(line);
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return builder.toString();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
progressDialog.dismiss();
Toast.makeText(MainActivity.context, s, Toast.LENGTH_SHORT).show();
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
}
Это мой php код
<?php
$email=$_POST["email"];
echo "hello"?>
Вау, я очень рад найти причину этой проблемы, которая ничего не отправила в мою локальную базу данных из Android Studio
эта проблема из-за этого кода в MainActivity:
new AsynctaskTest("http://152.144.1.215/sadegh",edt.getText().toString()).execute();
мы должны после / sadegh напечатать страницу, на которую мы хотим отправить информацию, вот так:
new AsynctaskTest("http://152.144.1.215/sadegh/index.php",edt.getText().toString()).execute();
Я надеюсь, что моя проблема и этот ответ помогут другим людям.
удачи, ребята.
Других решений пока нет …