Android HttpURLConnect выполняет GET и POST последовательно

В принципе, я хотел бы отправить запрос GET для получения формы и на основе значения формы для отправки запроса POST, например, как калькулятор.

<form action = "/calc" method = "POST">
  <input id = "sum" name = "sum" value = "">
  <input id = "num1" name = "num1" value = "6">
  <input id = "num2" name = "num2" value = "54">
  <input type = "submit" >
</form>

Значение num1 и num2 изменяется каждый раз, когда я отправляю запрос GET с помощью HttpUrlConnection в Android.

Как я могу получить значение элемента HTML, вычислить сумму в моем приложении для Android, а затем отправить значение суммы через запрос POST для отправки формы?

Вот мой код для Android

public class MainActivity extends AppCompatActivity {

private static final String TAG = "MYAPP";
int rs;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Instantiate the RequestQueue.
    RequestQueue queue = Volley.newRequestQueue(this);
    String url  = "http://local....";


    // Request a string response from the provided URL.
    StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    // Display the first 500 characters of the response string.
                    Log.e(TAG,response);
                    //Process the response, get value of num1 and num2 and compute the sum;
rs = sum;

                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Exception");
        }
    });

    StringRequest postRequest = new StringRequest(Request.Method.POST, url,
            new Response.Listener<String>()
            {
                @Override
                public void onResponse(String response) {
                    // response
                    Log.e(TAG, response);
                }
            },
            new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error) {
                    // error
                    Log.e(TAG, "Error");
                }
            }
    ) {
        @Override
        protected Map<String, String> getParams()
        {
            Map<String, String>  params = new HashMap<String, String>();
            params.put("sum", String.valueOf(rs));
            return params;
        }
    };

    queue.add(stringRequest);
    queue.add(postRequest);
}

}

Попробуйте поискать дооснащение. Он справляется с такими вещами (сетевое соединение) намного лучше, чем справляется с этим самостоятельно. Оттуда вы просто вызываете два метода.

Lukas Anda 27.10.2018 15:31

Спасибо! Я посмотрю на это!

Martian 27.10.2018 15:55

Просто прокомментируйте, когда он работает, чтобы я мог опубликовать правильный ответ :)

Lukas Anda 27.10.2018 17:10

Я смотрю на Volley, он очень прост в использовании. Однако я не могу одновременно обрабатывать GET и POST. Когда я ПОЛУЧАЮ форму, проанализирую значение и вычислю результат. Затем я помещаю его в запрос POST, но на этот раз значение формы изменяется.

Martian 27.10.2018 22:45

Почему бы вам не сделать это последовательно? Покажи мне код, который ты используешь

Lukas Anda 27.10.2018 23:53

Я обновил свой код в вопросе!

Martian 28.10.2018 09:16

Попробуй вложить че запросы

Lukas Anda 28.10.2018 09:17
0
7
36
0

Другие вопросы по теме