Poniżej podano wyjątek, mimo że mój klucz API dla serwera i aplikacji przeglądarki jest prawidłowy. Sprawdziłem to za pomocą loków. Wysyłam żądanie GCM zarówno w formacie UTF-8, jak i JSON. Testowanie go z zewnętrznej sieci korporacyjnej.Kod odpowiedzi HTTP 401 w Google GCM
java.io.IOException: Server returned HTTP response code: 401 for URL: https://android.googleapis.com/gcm/send
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at sun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1345)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1339)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:993)
at java.net.URLConnection.getContent(URLConnection.java:688)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getContent(HttpsURLConnectionImpl.java:406)
at gcm1.MessageUtil.sendMessage(MessageUtil.java:58)
Czy mogę poznać przyczynę i rozwiązanie tego problemu?
Dla osób, które właśnie przeglądają, jeśli nagle zacząłeś doświadczać tego błędu, nie wprowadzając żadnych konkretnych zmian (klucz serwera), to prawdopodobnie musisz zaimportować swój projekt do Firebase. Zobacz moją odpowiedź [tutaj] (http://stackoverflow.com/a/37801206/4625829). –