Библиотека веб-сокетов OKHTTP не работает? - PullRequest
0 голосов
/ 09 октября 2018

Я пытался использовать библиотеку веб-сокетов OKHTTP для получения данных из моего API, но я не могу получить данные.может кто-нибудь дать мне представление о том, что мне не хватает.Я не нашел ошибки при его создании.

При выполнении кода ошибка, которую я получаю на своем устройстве, предполагает ожидаемый отклик http 101, но составляет 200ok.

Даже если проблему не удается решить, может кто-нибудь порекомендовать мне любую другую библиотеку веб-сокетов для загрузкиданные с сервера.

private TextView test;
private Button start;
private OkHttpClient client;
private static final String TAG = "WebSocketTest";


public final class WebSocketListener extends okhttp3.WebSocketListener{
    private static final int NORMAL_CLOSURE_STATUS = 1000;

    @Override
    public void onOpen(WebSocket webSocket, Response response) {
        Log.d(TAG, "Open");
    }

    @Override
    public void onMessage(WebSocket webSocket, String text) {
        //System.out.println("MESSAGE: " + text);



        Log.d(TAG, "MESSAGE: " + text);
        JSONObject jsonObject = null;

        try {
            jsonObject = new JSONObject(text);
        } catch (JSONException ex) {
            ex.printStackTrace();
        }

        if (jsonObject != null) {
            try {
               String  lat = jsonObject.getString("latitude");
                String lon = jsonObject.getString("longitude");

                test.setText("Your Location is:" + lat + "--" + lon);

            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }

        @Override
    public void onMessage(WebSocket webSocket, ByteString bytes) {
        output("Receiving bytes : " + bytes.hex());
    }

    @Override
    public void onClosing(WebSocket webSocket, int code, String reason) {
        webSocket.close(NORMAL_CLOSURE_STATUS, null);
    }

    @Override
    public void onClosed(WebSocket webSocket, int code, String reason) {
        super.onClosed(webSocket, code, reason);
    }

    @Override
    public void onFailure(WebSocket webSocket, Throwable t, @Nullable Response response) {
        output("Error : " + t.getMessage());
    }
}

private void output(final String txt) {
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            test.setText(test.getText().toString() + "\n\n" + txt);
        }
    });
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_web_socket_test);
    test = findViewById(R.id.txt_test);
    start = findViewById(R.id.btn_start);
    client = new OkHttpClient();

  start.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          start();
      }
  });
}

private void start() {
   Request request = new Request.Builder().url("ws://192.168.100.70:9000/location").build();
    WebSocketListener listener = new WebSocketListener();
    client.newWebSocket(request, listener);
    client.dispatcher().executorService();
}


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...