Android HTTP GET 请求

Android HTTP GET Request

我用 Flask 创建了一个 Python REST api,'should' 允许我将 phone 用作键盘。

如果我在 phones 网络浏览器上转到“http://192.168.0.37:5000/keyboard/a”,我的笔记本电脑将输入字母 a。 (这有效)。

我尝试创建一个 Android 应用程序来发出 http 请求,但它似乎不起作用。

这是我使用的代码。我已经在一个基本的 Java 文件中测试过它并且它可以工作,但它不会在 Android 应用程序中工作。

private void sendGet(String letter) throws IOException {
    URL keyB = new URL("http://192.168.0.37:5000/keyboard/" + letter);
    Toast.makeText(getApplicationContext(), keyB.toString(), Toast.LENGTH_SHORT).show();

    URLConnection kb = keyB.openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(
            kb.getInputStream(), "UTF-8"));

    String inputLine;
    StringBuilder a = new StringBuilder();
    while ((inputLine = in.readLine()) != null) {
        a.append(inputLine);
    }
    in.close();

    Toast.makeText(getApplicationContext(), a.toString(), Toast.LENGTH_SHORT).show();
}

感谢@RemeesMSyde 的评论。

我将该方法放入 AsyncTask 中,现在可以使用了。

这是我用过的代码。

class SendKeyStroke extends AsyncTask<String, String, String> {
    @Override
    protected String doInBackground(String... letter) {
        try {
            URL keyB = new URL("http://192.168.0.37:5000/keyboard/" + letter[0]);
            System.out.println(keyB.toString());

            URLConnection kb = keyB.openConnection();
            BufferedReader in = new BufferedReader(new InputStreamReader(kb.getInputStream(), "UTF-8"));

            String inputLine;
            StringBuilder a = new StringBuilder();
            while ((inputLine = in.readLine()) != null) {
                a.append(inputLine);
            }
            in.close();
        } catch(Exception ex) {

        }

        return null;
    }
}