मैं एक बीन में निम्नलिखित जावा कोड का उपयोग URL के सामग्री पढ़ने के लिए:जावा: पुनर्निर्देशित यूआरएल से सामग्री कैसे पढ़ा जाए?
String url;
String inputLine;
StringBuilder srcCode=new StringBuilder();
public void setUrl (String value) {
url = value;
}
private void scanWebPage() throws IOException {
try {
URL dest = new URL(url);
URLConnection yc = dest.openConnection();
yc.setUseCaches(false);
BufferedReader in = new BufferedReader(new
InputStreamReader(yc.getInputStream()));
while ((inputLine = in.readLine()) != null)
srcCode = srcCode.append (inputLine);
in.close();
} catch (FileNotFoundException fne) {
srcCode.append("File Not Found") ;
}
}
कोड सबसे यूआरएल के लिए ठीक काम करता है, लेकिन रीडायरेक्ट किए गए URL के लिए काम नहीं करता। रीडायरेक्ट यूआरएल से सामग्री पढ़ने के लिए मैं उपर्युक्त कोड कैसे अपडेट कर सकता हूं? पुनर्निर्देशित यूआरएल के लिए, मुझे "File Not Found"
मिलता है। ऊपर अपने कोड में
HttpURLConnection yc = (HttpURLConnection) dest.openConnection();
yc.setInstanceFollowRedirects(true);
संदर्भ में:
'java.net.URL' डिफ़ॉल्ट रूप से रीडायरेक्ट का पालन करना चाहिए (जब तक आप पहले से' बुलाया गया है HttpURLConnection.setFollowRedirects (झूठा) '), तो आपको केवल अंतिम लक्ष्य यूआरएल की सामग्री देखना चाहिए। यह मानते हुए कि रीडायरेक्ट स्वयं 404 पेज पर नहीं जाता है ... –
प्रोटोकॉल में परिवर्तन होने पर यूआरएल कनेक्शन रीडायरेक्ट का पालन नहीं करेगा (यानी, HTTP से HTTPS तक)। क्या यह आपका परिदृश्य है? साथ ही, क्या आपको [अपाचे एचटीपी कॉम्पोनेंट्स] (http://hc.apache.org/) का उपयोग करने की अनुमति नहीं है? – Perception