Jsoup

2012-03-25 18 views
7

से कच्चे पोस्ट का जवाब प्राप्त करें मैं एक वेबसाइट पर एक फॉर्म पोस्ट करने के लिए जेएसओपी का उपयोग कर रहा हूं, उत्तर सादा पाठ है, लेकिन सामग्री प्रकार Jsoup के लिए ज्ञात नहीं है। इसलिए मैं ignoreContentType (true) का उपयोग करता हूं, इसलिए अज्ञात सामग्री प्रकार के कारण Jsoup अपवाद नहीं फेंक देगा। हालांकि, मैं यह नहीं समझ सकता कि जसूप से कच्चे उत्तर कैसे प्राप्त करें, पाठ में कुछ विशेष पात्र हैं, जो कि जसौप स्ट्रिप्स भी है, जेएसओपीएस भी एक शरीर और एचटीएमएल टैग जोड़ता है - मुझे इसकी आवश्यकता नहीं है, मुझे सिर्फ कच्चे जवाब चाहिए। कच्चे उत्तर कैसे प्राप्त करें? धन्यवाद!Jsoup

उत्तर

5

आप इसके लिए Response#body() का उपयोग कर सकते हैं। जैसे

String body = Jsoup.connect(url).execute().body(); 

या अगर आप पोस्ट

String body = Jsoup.connect(url).method(Method.POST).data(data).execute().body(); 
+0

धन्यवाद, यह काम करेगा, हालांकि मैं सोच रहा हूं कि जेएसओप से कच्चे डेटा को प्राप्त करना संभव नहीं है। मुझे पता है कि यह एक पार्सर है, लेकिन शायद इसके लिए अभी भी एक विधि है? ;-) –

+0

मैंने जवाब बदल दिया। – BalusC

+0

धन्यवाद, लेकिन यह अभी भी कच्चा डेटा नहीं है, अतिरिक्त बॉडी टैग (वास्तविक समस्या नहीं) के अलावा कुछ विशेष पात्र जेएसओपी द्वारा गायब/हटाए गए हैं): –

0

कर रहे हैं तो Connection से Response वस्तु प्राप्त कर सकते हैं, और यह कच्चे बाइट डेटा होता है। सामग्री प्रकार को अनदेखा करें या यह गैर-पाठ डेटा पर असफल हो जाएगा। यदि आप body() का उपयोग करते हैं तो यह डिफ़ॉल्ट वर्णमाला का उपयोग करके प्रतिक्रिया को जोड़ सकता है।

Connection conn = Jsoup.connect(url).ignoreContentType(true).method(Method.GET); 
Connection.Response response = conn.execute(); 
byte[] raw = response.bodyAsBytes(); 

// if you want... 
Document parsed = response.parse(); 
1

मैं एक ही मुद्दा था और दो कदम

1- सभा प्रतिक्रिया

2- पढ़ने बाइट के रूप में प्रतिक्रिया में इसे हल और स्ट्रिंग में कनवर्ट करने या कुछ भी आप चाहते हैं (json, आदि) के लिए पार्स करने

Response resp = jsoup.connect(url).ignoreContentType(true).Method(Method.Post).execute(); 
String respStr = new String(resp.bodyAsBytes(), StandardCharsets.UTF_8); 
संबंधित मुद्दे