简体   繁体   English

发送POST请求

[英]Sending a POST request

I am trying to make a post request to a php file with data from 2 edittext fields. 我正在尝试使用2个edittext字段中的数据向php文件发出发布请求。 But it is not working. 但这是行不通的。 The php file is accesable and working. php文件是可访问的并且可以运行。 Any1 that could help me? 有什么可以帮助我的吗?

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();

    }
}
}

The Toast should also show 'row added but it is just empty. Toast还应该显示“已添加行”,但它只是空的。

Just for the record, I have added the permissions. 仅作记录,我添加了权限。

android.permission.INTERNET" android.permission.INTERNET”

android.permission.ACCESS_NETWORK_STATE" android.permission.ACCESS_NETWORK_STATE“

Greenapps solved the problem for me. Greenapps为我解决了这个问题。 I just forgot the protocol in front of my url ( http:// ) 我只是忘记了网址(http://)前面的协议

add_info_url = "192.168.0.41/add_info.php";. add_info_url =“ 192.168.0.41/add_info.php”;。 You forgot the protocol. 您忘记了协议。 add_info_url = " http://192.168.0.41/add_info.php "; add_info_url =“ http://192.168.0.41/add_info.php ”;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM