如何使用URLConnection

时间:2016-03-01 07:30:07

标签: android url

我是Android的新手,但想制作一个简单的Android应用程序,显示我在面包板上的LED状态。到目前为止,我已经使用ESP8266创建了一个服务器,上面写着" LED ON" (使用this指南)现在我想在textview或其他东西上显示我的应用上的字符串。

我见过的每一个有用的在线资源都使用Android Studio中过时的apache HTTPClient方法,但我需要在API 23上使用URLConnect。以下是我到目前为止的内容。当我尝试单步执行代码时,异常处理程序在执行以" BufferedReader"开头的行时被调用,所以我知道那里发生了一些事情。

注意:我已将以下内容添加到Android Manifest中:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

任何人都知道发生了什么,或者可以修复我的代码?谢谢你的帮助!作为Android编程的初学者,我真的很感激!下面是我的.java文件中的代码。

public void run ()
{
        esp_message = (EditText)findViewById(R.id.esp_msg_txb);
        btn_connect = (Button)findViewById(R.id.button);
        btn_connect.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    new Thread(new Runnable() {
                        public void run() {
                            try {
                                URL url = new URL("http://thing.local/led/1");
                                URLConnection yc = url.openConnection();
                                BufferedReader in = new BufferedReader(
                                        new InputStreamReader(
                                                yc.getInputStream()));
                                String inputLine;
                                StringBuilder builder = new StringBuilder();
                                while ((inputLine = in.readLine()) != null)
                                    builder.append(inputLine.trim());
                                in.close();
                                String message = builder.toString();
                                esp_message.setText(message);
                            }
                            catch (Exception ex) {
                                Log.e("Fail 1", ex.toString());
                                //Toast.makeText(getApplicationContext(),"Invalid IP Address", Toast.LENGTH_LONG).show();
                                Log.i("Error on load data:", "" + ex.getMessage());
                            }
                        }
                    }).start();
                }
            }
    );




}

0 个答案:

没有答案