java - 如果我尝试使用 html 存储它的工作正常,我的 android 应用程序不会在服务器数据库中存储任何值
问题描述
如果我尝试使用 html 存储它的工作正常,我的 android 应用程序不会在服务器数据库中存储任何值
数据库结构:
public class MainActivity extends AppCompatActivity {
EditText E1,E2;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
E1= (EditText) findViewById(R.id.editText2);
E2 = (EditText) findViewById(R.id.editText3);
button = (Button) findViewById(R.id.Button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name1=E1.getText().toString();
String email1=E2.getText().toString();
String type="insert";
BackgroundWorker backgroundWorker=new BackgroundWorker(MainActivity.this);
backgroundWorker.execute(type,name1,email1);
}
});
}
class BackgroundWorker extends AsyncTask<String,Void,String>
{
Context context;
AlertDialog alertDialog;
BackgroundWorker(Context ctx)
{
context=ctx;
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
protected String doInBackground(String... params) {
String type=params[0];
String ServerURL = "http://zaidinfo4you.ml/get_data.php";
if(type.equals("insert"))
{
try{
String name=params[1];
String email=params[2];
URL url= new URL(ServerURL);
Log.d("test",name+","+email);
HttpURLConnection httpURLConnection=(HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream= httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter=new BufferedWriter(new OutputStreamWriter(outputStream, StandardCharsets.UTF_8));
String post_data= URLEncoder.encode("name","UTF-8")+"="+URLEncoder.encode(name,"UTF-8")+"&"+URLEncoder.encode("email","UTF-8")+"="+URLEncoder.encode(email,"UTF-8");
bufferedWriter.write(post_data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream= httpURLConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.ISO_8859_1));
String result="";
String line="";
while((line=bufferedReader.readLine())!=null)
{
result += line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return result;
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPreExecute()
{
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("Insert Successfully");
}
@Override
protected void onPostExecute(String result)
{
alertDialog.setMessage(result);
alertDialog.show();
}
protected void onProgressUpdate(Void... values)
{
super.onProgressUpdate(values);
}
}
}
如果我们使用 apk,我的 php 代码可以与我的 html 表单一起正常工作,但它不起作用请建议我并回复我'
解决方案
要连接到 URL,您必须调用 connect 方法。outputStream.close();
在 doInBackground 方法中复制下面的行。
httpURLConnection.connect()
推荐阅读
- javascript - SQL 有,但以 Javascript 方式
- reactjs - 如何在本机反应中创建嵌套的堆栈导航器?
- php - 将输入字段与 PHP 中的 CNIC 编号匹配?
- python - python如何处理和打印包含RTL和LTR语言的字符串?
- java - Spring 框架 5.2.8.RELEASE 中是否不支持 MultiActionController
- reactjs - 将数据写入firebase数据库,获取位置和时间戳
- javascript - VueJS 从 v-model 更改 URL 参数
- python - 解析嵌套 JSON 格式的数据时出错
- reactjs - 反应 useReducer 调度
- angular - 如何在角度中使用引导程序和 Ionic