Выполнение POST-запроса к API путем передачи Object класса в качестве параметра - PullRequest
0 голосов
/ 28 февраля 2020

Я хочу сделать POST запрос к API, где я передаю Object класса как json parameter

Это то, что я пробовал до сих пор -

UpdatedOrderDetail uodVo = new UpdatedOrderDetail();

public void myFunction(View view) {

        //Updating order status
        final OrdersVo ovo = (OrdersVo)getIntent().getSerializableExtra("OrdersVo");
        uodVo.setOrderID(ovo.getOrderID());
        uodVo.setOrderItemID(ovo.getOrderItemID());
        uodVo.setOrderStatusID(8); //Arriving status

        //converting UpdatedOrderDetails class object to json
        Gson gson = new Gson();
        String json = gson.toJson(uodVo);

        new SendUpdatedOrderDetails().execute("my_url", json);
}

private class SendUpdatedOrderDetails extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... strings) {
            String data = "";
            HttpURLConnection httpURLConnection = null;
            try {
                httpURLConnection = (HttpURLConnection) new URL(strings[0]).openConnection();
                httpURLConnection.setRequestMethod("POST");

                httpURLConnection.setDoOutput(true);

                DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream());
                wr.writeBytes(strings[1]);
                wr.flush();
                wr.close();

                InputStream in = httpURLConnection.getInputStream();
                InputStreamReader inputStreamReader = new InputStreamReader(in);

                int inputStreamData = inputStreamReader.read();
                while (inputStreamData != -1) {
                    char current = (char) inputStreamData;
                    inputStreamData = inputStreamReader.read();
                    data += current;
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (httpURLConnection != null)
                    httpURLConnection.disconnect();
            }
            return data;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
        }
    }

Но это не сделало ни одного POST запроса к моему API, может кто-нибудь сказать мне, что я делаю неправильно?

...