Android HttpURLConnect выполняет GET и POST последовательно - PullRequest
0 голосов
/ 27 октября 2018

По сути, я хотел бы отправить запрос 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);
}

}

...