2013-10-24 7 views
9

का उपयोग कर स्ट्रिंग के रूप में JSON प्रतिक्रिया पढ़ने के लिए मैं एक आरईएसटी यूआरआई में फ़ाइल पोस्ट करने के लिए जर्सी क्लाइंट का उपयोग कर रहा हूं जो जेसन के रूप में प्रतिक्रिया देता है। मेरी आवश्यकता एक स्ट्रिंग के लिए प्रतिक्रिया (जेसन) के रूप में पढ़ने के लिए है।जर्सी क्लाइंट

यहां कोड का वह टुकड़ा है जो वेब सेवा को डेटा पोस्ट करता है।

final ClientResponse clientResp = resource.type(
      MediaType.MULTIPART_FORM_DATA_TYPE). 
      accept(MediaType.APPLICATION_JSON). 
      post(ClientResponse.class, inputData); 
    System.out.println("Response from news Rest Resource : " + clientResp.getEntity(String.class)); // This doesnt work.Displays nothing. 

clientResp.getLength() 281 बाइट्स जो प्रतिक्रिया के आकार है, लेकिन clientResp.getEntity (String.class) कुछ भी नहीं देता है।

कोई विचार क्या गलत हो सकता है?

उत्तर

15

उपयोग करने के लिए मैं इस समस्या का हल खोजने के लिए कर रहा था पर विचार कर सकते। GetEntity (String.class) से पहले बस बफर एंटीटी विधि को कॉल करना पड़ा। यह स्ट्रिंग के रूप में प्रतिक्रिया वापस कर देगा।

clientResp.bufferEntity(); 
    String x = clientResp.getEntity(String.class); 
+1

इस समय सही जर्सी विधि getEntity (String.class) के बजाय, एंटीटी (स्ट्रिंग.क्लास) पढ़ी जाती है। –

0

आप अभी भी इस के साथ समस्या यह मिल गया है, तो आप rest-assured

+0

respnse के लिए धन्यवाद। आरईएसटी-आश्वासन आशाजनक प्रतीत होता है, लेकिन मैं केवल अपनी परियोजना में जर्सी क्लाइंट का उपयोग कर सकता हूं। :( – Sudhir

5

हालांकि उपरोक्त जवाब सही है, जर्सी एपीआई v2.7 का उपयोग कर इसे Response साथ थोड़ा अलग है:

Client client = ClientBuilder.newClient(); 
WebTarget target = client.target("http://localhost:8080"); 
Response response = target.path("api").path("server").path("ping").request(MediaType.TEXT_PLAIN_TYPE).get(); 
System.out.println("Response: " + response.getStatus() + " - " + response.readEntity(String.class)); 
संबंधित मुद्दे