जावा यूआरएलकनेक्शन के उपयोगकर्ता एजेंट को सेट करना
यूआरएलकनेक्शन के साथ जावा का उपयोग करके एक वेबपेज को पार्स करने का प्रयास करते समय और उपयोगकर्ता-एजेंट को एक निर्दिष्ट पर सेट करना मान, अंत में एक अतिरिक्त "Java/1.5.0_19" जोड़ा जा सकता है। यह जावा के पुराने संस्करणों में एक सीमा के कारण उत्पन्न होता है।
समाधान (जावा 1.6.30 और नया)
जावा 1.6.30 और नए में, यह समस्या है समाधान किया गया. setRequestProperty("User-Agent", "Mozilla ...") का उपयोग करके उपयोगकर्ता एजेंट को सेट करना अब जावा संस्करण को जोड़े बिना सही ढंग से काम करता है।
Verification
सत्यापित करने के लिए इसे, आप नेटकैट का उपयोग करके एक पोर्ट पर सुन सकते हैं, जो आने वाले अनुरोधों के कच्चे HTTP हेडर प्रदर्शित करता है। उपयोगकर्ता एजेंट को सेट किए बिना, हेडर दिखाएंगे:
GET /foobar HTTP/1.1 User-Agent: Java/1.6.0_30 Host: localhost:8080 Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive
उपयोगकर्ता एजेंट सेट करते समय, हेडर इसके बजाय दिखाएंगे:
GET /foobar HTTP/1.1 User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 Host: localhost:8080 Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 Connection: keep-alive
उदाहरण कोड (जावा 1.6.30 )
निम्नलिखित कोड उदाहरण दर्शाता है कि उपयोगकर्ता एजेंट को सही ढंग से कैसे सेट किया जाए:
import java.io.IOException; import java.net.URL; import java.net.URLConnection; public class TestUrlOpener { public static void main(String[] args) throws IOException { URL url = new URL("http://localhost:8080/foobar"); URLConnection hc = url.openConnection(); hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2"); System.out.println(hc.getContentType()); } }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3