Import "sun.net.www.protocol.http.HttpURLConnection" počínaje Javou 9

zemla

Dobrý den,

pomohl by mi prosím někdo pochopit popř objasnit, proč import v předmětu mi compiler nevezme a zahlásí "package not found" ?

Trošku jsem surfoval a někde jsem se dočetl, že docházelo k přesunu knihoven od sun do "jdk.unsupported" - zkoušel jsem do "module-info.java" přidat "requires jdk.unsupported" - nepomohlo.

Bylo to myslím tady, ale mně to nepomohlo.

https://stackoverflow.com/questions/42538750/unable-to-export-a-package-from-java-base-module

Funguje to, prosím, někomu z vás ?


Třídy v balíčku sun (a dalších) byly určené jen jako interní implementace a neměly se přímo používat v aplikacích. A zrovna v tomhle případě není žádný důvod, proč tu třídu používat, když máte k dispozici veřejnou třídu java.net.HttpURLConnection.

zemla

Důvod, proč jsem variantu od sunu chtěl použít bylo, že třída umožňovala implicitně použít kredence uživatele, který je zrovna přihlášen. Jde to udělat jinak? V CSharpu je to CredentialsCache.DefaultCredentials.

Díky

Pokud myslíte aktuálně přihlášeného uživatele ve Windows, to asi standardní knihovna podporovat nebude, ta je multiplatformní. Navíc HttpURLConnection poskytuje jen základní funkcionalitu (i když v posledních verzích se to zlepšilo), radši používám specializované knihovny pro HTTP komunikaci, např. Apache HTTP Components nebo Jetty HTTP Client. Apache HttpClient podporuje NTLM autentizaci a existuje postup, jak použít ticket aktuálně přihlášeného uživatele.

zemla

V podstatatě přesně toto jsem hledal. Jenom nerozumím tomu, když do POMu přidám org.apache.httpcomponents (použil jsem verzi 4.5), kde je jako example použitý ClientWinAuth (default credentials), jako je zde:

http://hc.apache.org/httpcomponents-client-4.5.x/httpclient-win/examples/org/apache/http/examples/client/win/ClientWinAuth.java

proč mi to říká, že nezná, org.apache.http.impl.client.WinHttpClients ?

Budu googlit, ale pokud to víte z hlavy, budete možná rychlejší.

Doposud i nyní děkuji.


zemla

Tak jsem zjistil, že se jedná o sepárátní závislost:

Kód: [Vybrat]
<dependency>
   <groupId>org.apache.httpcomponents</groupId>
   <artifactId>httpclient-win</artifactId>
   <version>4.5</version>
</dependency>

Moc jste mi pomohl, děkuju.

Přesně tak. Jinak aktuální verze obou knihoven je 4.5.6, oproti verzi 4.5 tam budou nějaké opravené chyby, doporučuju použít poslední verzi.