代码之家  ›  专栏  ›  技术社区  ›  Joram Laureyns

发送POST请求

  •  0
  • Joram Laureyns  · 技术社区  · 7 年前

    我试图用来自两个edittext字段的数据向php文件发出post请求。但它不起作用。php文件是可访问的,并且可以正常工作。有什么能帮我的吗?

    public class AddInfo extends Activity {
    
    private EditText etxt1, etxt2;
    private String result, code, omschrijving;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_info);
        etxt1 = (EditText) findViewById(R.id.etext1);
        etxt2 = (EditText) findViewById(R.id.etext2);
        result = getIntent().getStringExtra("message_key");
        etxt1.setText(result);
    }
    
    public void saveInfo (View view)
    {
        code = etxt1.getText().toString();
        omschrijving = etxt2.getText().toString();
        BackgroundTask backgroundTask = new BackgroundTask();
        backgroundTask.execute(code,omschrijving);
        finish();
    
    }
    
    class BackgroundTask extends AsyncTask<String,Void,String>
    {
        String add_info_url;
        @Override
        protected  void  onPreExecute() {
            add_info_url = "192.168.0.41/add_info.php";
        }
    
        @Override
        protected String doInBackground(String... args) {
            String code,omschrijving;
            code = args[0];
            omschrijving = args[1];
            try {
    
                URL url = new URL(add_info_url);
                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                OutputStream outputStream = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
                String data_string = URLEncoder.encode("code","UTF-8")+"="+URLEncoder.encode(code, "UTF-8")+"&"+
                        URLEncoder.encode("omschrijving","UTF-8")+"="+URLEncoder.encode(omschrijving, "UTF-8");
                bufferedWriter.write(data_string);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();
                InputStream inputStream = httpURLConnection.getInputStream();
                inputStream.close();
                httpURLConnection.disconnect();
                return "Row added";
    
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    
        @Override
        protected void  onProgressUpdate(Void... values){
            super.onProgressUpdate(values);
        }
    
        @Override
        protected  void onPostExecute(String resultt){
            Toast.makeText(getApplicationContext(),resultt,Toast.LENGTH_LONG).show();
    
        }
    }
    }
    

    祝酒词还应显示“已添加行”,但它只是空的。

    为了记录,我添加了权限。

    安卓.权限.互联网“

    android.permission.access_网络状态“

    1 回复  |  直到 7 年前
        1
  •  0
  •   Joram Laureyns    7 年前

    绿色应用为我解决了这个问题。我只是忘记了我的url前面的协议(http://)

    add_info_url=“192.168.0.41/add_info.php”。你忘了礼节。添加信息URL=” http://192.168.0.41/add_info.php “;