ROME Feeds: sit die proxy op die HTTP-kliënt
Laat die HTTP-kliënt die proxy-roetering en statusverwerking besit, en gee dan sy stroom en inhoudtipe aan ROME se XML-leser.
ROME ontleed feed-bytes; die HTTP-kliënt moet hul proxy-roete en -rekening besit. Vir 'n gekose JDK HttpClient hoort 'n vaste proxy op sy bouer:
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example", 8080)))
.build();
Vir 'n toegelate publieke-feed-toets sonder proxy-verifikasie, vervang die plekhouer-gasheer en -poort met 'n kandidaat uit die HTTP-proxylys. Voeg die ontplooiing se verifikasie en versoekbeperkings by daardie kliënt. Nadat dit 'n aanvaarbare antwoord verkry het, gee die stroom aan ROME:
try (XmlReader reader = new XmlReader(body, contentType)) {
SyndFeed feed = new SyndFeedInput().build(reader);
}
Die moderne invoere is com.rometools.rome.io.XmlReader en SyndFeedInput. Hier is body die ontvangde InputStream en contentType die HTTP Content-Type. XmlReader oorweeg die BOM, daardie metadata en die XML-verklaring. Om eers met 'n willekeurige karakterstel te dekodeer kan nuttige bewyse weggooi.
Ondersoek die HTTP-status voor ontleding. 'n Proxy-aanmeldbladsy of weiering kan andersins as 'n XML-fout verskyn. Stel ook liggame vir verwerpte antwoorde vry, sodat 'n HTTP-fout nie sy stroom oop laat nie.
Twee feed-bronne kan verskillend gekonfigureerde kliënte gebruik sonder om JVM-proxy-eienskappe tussen oproepe te verander. Elke HTTP-kliënt besit sy roete terwyl ROME die ontledingstap besit.