Здравствуйте, не могу обработать POST запрос.
При попытке отправить его на сервер, выдаёт ошибку (есть на скриншоте).
Помогите разобраться, в чём дело.
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.UnsupportedEncodingException;
public class MainActivity extends AppCompatActivity {
private RequestQueue requestQueue;
private EditText et_countid;
private Button btn_submit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_countid = (EditText)findViewById(R.id.et_countid);
btn_submit = (Button) findViewById(R.id.btn_submit);
btn_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String data = "{"+
"\"countid\"" + "\"" + et_countid.getText().toString() + "\""+
"}";
Submit(data);
}
});
}
private void Submit(String data)
{
final String savedata= data;
String URL="http://10.0.2.2:5000/activation";
requestQueue = Volley.newRequestQueue(getApplicationContext());
StringRequest stringRequest = new StringRequest(Request.Method.POST, URL, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject objres=new JSONObject(response);
Toast.makeText(getApplicationContext(),objres.toString(),Toast.LENGTH_LONG).show();
} catch (JSONException e) {
Toast.makeText(getApplicationContext(),"Server Error",Toast.LENGTH_LONG).show();
}
//Log.i("VOLLEY", response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
//Log.v("VOLLEY", error.toString());
}
}) {
@Override
public String getBodyContentType() {
return "application/json; charset=utf-8";
}
@Override
public byte[] getBody() throws AuthFailureError {
try {
return savedata == null ? null : savedata.getBytes("utf-8");
} catch (UnsupportedEncodingException uee) {
//Log.v("Unsupported Encoding while trying to get the bytes", data);
return null;
}
}
};
requestQueue.add(stringRequest);
}
}
@app.route("/activation", methods=['POST', 'GET'])
def activation():
if (request.method == "POST"):
countid_ = request.form["countid"]
discard = Data(countid_)
db.session.add(discard)
db.session.commit()
return render_template("success.html")
else:
return render_template("activation.html")
<form class="contact100-form validate-form" method="POST">
<span class="contact100-form-title">
Активация карты
</span>
<div class="wrap-input100 validate-input" data-validate="Name is required">
<input class="input100" type="number" min="100000" max="999999999" name="countid" required placeholder="Введите номер Вашей карты">
<span class="focus-input100"></span>
</div>
<div class="container-contact100-form-btn">
<div class="wrap-contact100-form-btn">
<div class="contact100-form-bgbtn"></div>
<button class="contact100-form-btn" type="submit">
Подтвердить
</button>
</div>
</div>
</form>