ROME Feeds: ਪਰਾਕਸੀ ਨੂੰ HTTP ਕਲਾਇੰਟ 'ਤੇ ਰੱਖੋ
HTTP ਕਲਾਇੰਟ ਨੂੰ ਪਰਾਕਸੀ ਰੂਟਿੰਗ ਅਤੇ ਸਥਿਤੀ ਸੰਭਾਲਣ ਦਿਓ, ਫਿਰ ਇਸ ਦੀ ਸਟ੍ਰੀਮ ਅਤੇ ਸਮੱਗਰੀ ਕਿਸਮ ROME ਦੇ XML ਰੀਡਰ ਨੂੰ ਦਿਓ।
ROME ਫੀਡ ਬਾਈਟਾਂ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਦਾ ਹੈ; ਪਰਾਕਸੀ ਮਾਰਗ ਅਤੇ ਖਾਤਾ HTTP ਕਲਾਇੰਟ ਦਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਚੁਣੇ ਗਏ JDK HttpClient ਲਈ, ਸਥਿਰ ਪਰਾਕਸੀ ਇਸ ਦੇ builder 'ਤੇ ਰੱਖੀ ਜਾਂਦੀ ਹੈ:
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example", 8080)))
.build();
ਪਰਾਕਸੀ ਪ੍ਰਮਾਣਿਕਤਾ ਤੋਂ ਬਿਨਾਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ ਫੀਡ ਟੈਸਟ ਲਈ, ਪਲੇਸਹੋਲਡਰ ਹੋਸਟ ਅਤੇ ਪੋਰਟ ਨੂੰ HTTP ਪਰਾਕਸੀ ਸੂਚੀ ਤੋਂ ਇੱਕ ਉਮੀਦਵਾਰ ਨਾਲ ਬਦਲੋ। ਉਸ ਕਲਾਇੰਟ ਵਿੱਚ ਡਿਪਲਾਏਮੈਂਟ ਦੀ ਪ੍ਰਮਾਣਿਕਤਾ ਅਤੇ ਬੇਨਤੀ ਸੀਮਾਵਾਂ ਸ਼ਾਮਲ ਕਰੋ। ਸਵੀਕਾਰਯੋਗ ਜਵਾਬ ਮਿਲਣ ਤੋਂ ਬਾਅਦ, ਸਟ੍ਰੀਮ ROME ਨੂੰ ਦਿਓ:
try (XmlReader reader = new XmlReader(body, contentType)) {
SyndFeed feed = new SyndFeedInput().build(reader);
}
ਆਧੁਨਿਕ imports com.rometools.rome.io.XmlReader ਅਤੇ SyndFeedInput ਹਨ। ਇੱਥੇ body ਪ੍ਰਾਪਤ InputStream ਹੈ ਅਤੇ contentType HTTP Content-Type ਹੈ। XmlReader BOM, ਉਸ ਮੈਟਾਡੇਟਾ ਅਤੇ XML ਐਲਾਨ ਨੂੰ ਧਿਆਨ ਵਿੱਚ ਰੱਖਦਾ ਹੈ। ਪਹਿਲਾਂ ਕਿਸੇ ਵੀ charset ਨਾਲ ਡੀਕੋਡ ਕਰਨ ਨਾਲ ਲਾਭਦਾਇਕ ਸਬੂਤ ਗੁਆਚ ਸਕਦੇ ਹਨ।
ਵਿਸ਼ਲੇਸ਼ਣ ਤੋਂ ਪਹਿਲਾਂ HTTP ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਕਰੋ। ਨਹੀਂ ਤਾਂ ਪਰਾਕਸੀ ਲੌਗਇਨ ਪੰਨਾ ਜਾਂ ਇਨਕਾਰ XML ਗਲਤੀ ਵਜੋਂ ਦਿਖ ਸਕਦਾ ਹੈ। ਰੱਦ ਕੀਤੇ ਜਵਾਬਾਂ ਲਈ ਵੀ ਬਾਡੀ ਛੱਡੋ, ਤਾਂ ਜੋ HTTP ਗਲਤੀ ਇਸ ਦੀ ਸਟ੍ਰੀਮ ਖੁੱਲ੍ਹੀ ਨਾ ਛੱਡੇ।
ਦੋ ਫੀਡ ਸਰੋਤ ਕਾਲਾਂ ਵਿਚਕਾਰ JVM ਪਰਾਕਸੀ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਬਦਲੇ ਬਿਨਾਂ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਸੰਰਚਿਤ ਕਲਾਇੰਟ ਵਰਤ ਸਕਦੇ ਹਨ। ਹਰ HTTP ਕਲਾਇੰਟ ਆਪਣੇ ਮਾਰਗ ਦਾ ਮਾਲਕ ਹੈ ਜਦੋਂ ਕਿ ROME ਵਿਸ਼ਲੇਸ਼ਣ ਦੇ ਪੜਾਅ ਦਾ ਮਾਲਕ ਹੈ।