Как я могу исправить эту Unirest Ошибка с помощью Android Studio? - PullRequest
0 голосов
/ 31 января 2020

К сожалению, я всегда получаю сообщение об ошибке при использовании кода.

Мой код:

button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            try {
                HttpResponse<String> response1 = Unirest.put("http://192.168.1.151:80/api/09107DA986/lights/1/state")
                        .header("Content-Type", "application/x-www-form-urlencoded")
                        .body("{ \"on\": " + true + ",\r\n  \"bri\": " + 100 + ",\r\n  \"hue\": " + 5000 + ",\r\n  \"sat\": " + 100 + ",\r\n  \"transitiontime\": " + 0 + "\r\n}")
                        .asString();
            } catch (UnirestException e) {
                e.printStackTrace();
            }
        }
    });

Ошибка:

W/System.err: com.mashape.unirest.http.exceptions.UnirestException: android.os.NetworkOnMainThreadException
    at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:130)
    at com.mashape.unirest.request.BaseRequest.asString(BaseRequest.java:51)
    at com.example.smarthome.MainActivity$1.onClick(MainActivity.java:29)
    at android.view.View.performClick(View.java:7339)
    at android.widget.TextView.performClick(TextView.java:14221)
    at android.view.View.performClickInternal(View.java:7305)
    at android.view.View.access$3200(View.java:846)
    at android.view.View$PerformClick.run(View.java:27787)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7063)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Caused by: android.os.NetworkOnMainThreadException
    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1513)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:389)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
    at java.net.Socket.connect(Socket.java:621)
W/System.err:     at local.org.apache.http.conn.socket.PlainConnectionSocketFactory.connectSocket(PlainConnectionSocketFactory.java:72)
    at local.org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:118)
    at local.org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:314)
    at local.org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:363)
    at local.org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219)
    at local.org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:195)
    at local.org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:85)
    at local.org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:108)
    at local.org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186)
    at local.org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    at local.org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:106)
    at local.org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
    at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:125)
    ... 14 more

Я надеюсь, что кто-то может Помоги мне. Я пытался запустить эти HTTP-запросы в течение нескольких часов! Я также надеюсь, что вы можете что-то сделать с сообщением об ошибке.

...