Sunday 15 May 2011

java - Bing api sample code -


मैं इस नमूना कोड को बिंग एपीआई का उपयोग करता हूं:

  import java.io.buffferedReader; आयात java.io.IOException; आयात करें java.io.InputStreamReader; आयात करें java.net.HttpURLConnection; आयात करें java.net.MalformedURLException; Import java.net.URL; आयात org.apache.commons.codec.binary.Base64; आयात org.jsoup.Jsoup; सार्वजनिक वर्ग बिंग सर्च {/ ** * @ परम आर्गिक्स * / सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {// टूडो ऑटो-जनरेटेड विधि स्टब // ---------------- ---------------------- बिंग खोज -------------------------- ---- स्ट्रिंग खोज टेक्स्ट = "तैरना"; SearchText = searchText.replaceAll ("", "% 20"); स्ट्रिंग अकादमी = "आपका-खाताकी"; बाइट [] अकाउंटकेयबाइट्स = बेस 64.एक्सकोडबेसे 64 ((खाताकी + ":" + खाताकी) .getBytes ()); स्ट्रिंग अकाउंटकेयएएनसी = नया स्ट्रिंग (अकाउंटकेरीबाइट्स); यूआरएल यूआरएल; {Url = नया URL ("https://api.datamarket.azure.com/Data.ashx/Bing/Search/v1/Web?Query=%27" + searchText + "% 27 & $ top = 50 & amp; $ प्रयास करें प्रारूप = एटम "); HttpURLConnection conn = (HttpURLConnection) url.openConnection (); conn.setRequestMethod ( "GET"); Conn.setRequestProperty ("प्राधिकरण", "बेसिक" + accountKeyEnc); // conn.setRequestProperty ("स्वीकार करें", "एप्लिकेशन / जेएसन"); BufferedReader br = नया BufferedReader (नया InputStreamReader ((conn.getInputStream ()))); स्ट्रिंगबिल्डर एसबी = नया स्ट्रिंगबिल्डर (); स्ट्रिंग आउटपुट; System.out.println ("सर्वर से आउटपुट .... .... \ n"); चार [] बफर = नया चार्ज [4096]; जबकि ((आउटपुट = ब्र्रेडलाइन ())! = नल) {sb.append (आउटपुट); // text.append (link + "\ n \ n \ n"); // Google खोज लिंक मुद्रित करेगा //}} conn.disconnect (); Int खोज = sb.indexOf ("& lt; d: वर्णन"); इंटेल कुल = खोज + 1000; System.out.println ("सूचकांक ढूंढें:" + ढूंढें); System.out.println ("कुल अनुक्रमणिका:" + कुल); Sb.getChars (+ 35, कुल, बफर, 0); स्ट्रिंग str = नया स्ट्रिंग (बफर); Int find2 = str.indexOf ("& lt; / d: विवरण & gt;"); Int total2 = find2 + 400; System.out.println ("सूचकांक ढूंढें:" + ढूंढें); System.out.println ("कुल अनुक्रमणिका:" + कुल); चार [] बफर 2 = नया चार् [1024]; Str.get चेर्स (0, खोज 2, बफर 2, 0); स्ट्रिंग str2 = नया स्ट्रिंग (बफर 2); Str2 = Jsoup.parse (str2) .text (); Println (str2); } कैच (मैलार्मडुरलेक्सेप्शन ई 1) {// टूडो ऑटो-जेनरेट कैच ब्लॉक e1.printStackTrace (); } पकड़ (IOException ई) {// TODO ऑटो-जेनरेट कैच ब्लॉक e.printStackTrace (); }}}   

बाहर रखा गया है:

सर्वर से आउटपुट ....

  सूचकांक खोजें: 1014 कुल अनुक्रमणिका: 2014 सूचकांक खोजें: 1014 कुल सूचकांक: 2014 कंप्यूटर एक सामान्य उद्देश्य उपकरण है जिसे गणित या तार्किक संचालनों के एक सीमित सेट को पूरा करने के लिए प्रोग्राम किया जा सकता है। चूंकि आपरेशन के एक क्रम हो सकता है ...   

यह सिर्फ एक ही परिणाम दिखाता है, लेकिन मुझे एक से अधिक परिणामों की आवश्यकता है I इसे इस कोड के साथ करना संभव है? या इस कोड के लिए अन्य विकल्प है? धन्यवाद

बिंग करने के लिए आप एक फ़ीड के रूप में परिणामों का अनुरोध कर रहे हैं, और यही वह है जो आप हैं वापस लाने (उस विशेष क्वेरी के लिए 38785 वर्ण लंबी) और आपको वास्तव में एटम फ़ीड के रूप में व्यवहार करना चाहिए और इसे और अधिक उचित तरीके से पार्स करना होगा।

इसका कारण है कि आप केवल अपने कोड में एक परिणाम प्राप्त करते हैं आपको कभी भी sb स्ट्रिंग में फ़ीड नहीं लगती है अगर आप वास्तव में फीड को पार्स करना चाहते हैं तो इस तरह से आपको conn.disconnect () के बाद एक लूप पर कोड की ओर जाने की जरूरत है और sb.indexOf ("& lt; d: description" , Int से इंडैक्स) स्ट्रिंग को हर बार जब आप एक नया मैच मिलते हैं, तब से इंडीेंड में वृद्धि करने के लिए।

लेकिन आपको वास्तव में बिंग की प्रतिक्रिया को एक्सएमएल-फीड की तरह व्यवहार करना चाहिए और इसे पार्स करना होगा कुछ एक्सएमएल-पुस्तकालय, उदाहरण के लिए।

No comments:

Post a Comment