API route in Python (Flask)
@app.route('/secret')
def secret():
    if request.get_json(force=True)['key'] == 'secret key':
        return jsonify(msg='Hello!')
It is working linux terminal
curl -iX GET -d '{"key":"secret key"}' localhost
Linux terminal output this
{"msg":"Hello!"}
It doesn't need to work in browser.
try{
    HttpURLConnection connection = (HttpURLConnection)
                        new URL("http://<my local ip>/secret").openConnection();
    connection.setRequestMethod("GET");
    connection.setDoOutput(true);
    connection.connect();
    JSONObject jsonInput = new JSONObject();
    jsonInput.put("key", "secret key");
    OutputStream os = connection.getOutputStream();
    byte[] input = jsonInput.toString().getBytes(StandardCharsets.UTF_8);
    os.write(input, 0, input.length);
    os.flush();
    os.close();
    BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
    StringBuilder response = new StringBuilder();
    String responseLine = null;
    while ((responseLine = br.readLine()) != null) {
        response.append(responseLine.trim());
    }
    return response.toString();
} catch (IOException | JSONException e) {
    Log.e("MainActivity", "Error: " + e.getMessage());
}
Although the GET method is set to the connection request in my codes, a POST request is being sent to the Python server.
Is it impossible to fix this?
 
    