Kusigaba se-HTTP se-Jena esisekelwe ku-JDK, esethulwe ku-Jena 4.3, lungiselela i-transport enikezwa umakhi wemibuzo. Iphasiwedi yendawo yokugcina ye-SPARQL nephasiwedi ye-proxy kungabuzwa yimishini ehlukene.

import java.net.InetSocketAddress;
import java.net.ProxySelector;
import java.net.http.HttpClient;
import org.apache.jena.sparql.exec.http.QueryExecutionHTTP;

var http = HttpClient.newBuilder()
    .proxy(ProxySelector.of(
        new InetSocketAddress("proxy.example", 8080)))
    .authenticator(proxyAuthenticator)
    .build();

var execution = QueryExecutionHTTP.service(endpointUrl)
    .httpClient(http)
    .query("ASK { ?s ?p ?o }")
    .build();

Le ngxenye yakha ukusebenza kombuzo. I-endpointUrl iyi-URL yangempela yensizakalo ye-SPARQL; i-proxyAuthenticator iyi-java.net.Authenticator enikezwa uhlelo lokusebenza. Qalisa futhi vala ukusebenza kombuzo ngomjikelezo wempilo yemibuzo ojwayelekile wohlelo.

Endleleni ethi getPasswordAuthentication yaleso siqinisekisi, buyisela i-PasswordAuthentication ye-proxy kuphela lapho getRequestorType() == RequestorType.PROXY futhi lapho isisindo nembobo yocingo ecela khona kuhambisana nomxhumanisi olungisiwe. Buyisela i-null ezinseleleni ezingahlobene. Ukunamathisela le nto kuklayenti kugcina ukukhetha kuyilokho kuklayenti.

Funda lokho okucelwa yi-proxy

Impendulo engu-407 ikhombisa inselele yokuqinisekisa nge-proxy. Isihloko sayo esithi Proxy-Authenticate siveza izinhlelo ezinikezwayo; isimo sisodwa asihlukanisi i-Basic ku-NTLM noma kolunye uhlelo.

Qhathanisa lokho okunikezwayo namakhono kanye nenqubomgomo yokuqinisekisa yeklayenti le-JDK elifakiwe. Ukunikeza igama lomsebenzisi nephasiwedi akungezi uhlelo olungasekelwe. Ezinhlosweni ze-HTTPS, hlola futhi inqubomgomo ye-JDK ethi jdk.http.auth.tunneling.disabledSchemes; i-proxy ejwayelekile ye-HTTP inesilungiselelo esihlukile esithi disabledSchemes. Izinto eziyisisekelo ze-JDK zokuqinisekisa i-Basic ku-CONNECT kungenye yalezi zivivinyo zenqubomgomo.

Izibonelo zomlando ze-Jena ezisebenzisa i-Apache HttpClient ne-SimpleNTAuthenticator zingezesizukulwane se-transport esidala. Uma i-proxy yenkampani ifuna indlela yokuqinisekisa engatholakali ku-transport yamanje, hlela ukuhlanganiswa okusekelwe nomqondisi wenethiwekhi esikhundleni sokuzama ukufaka lezo zinto zokuqinisekisa ezindala kumakhi wesimanje.

Izihloko ezihlobene