2013-07-09 7 views
5

HI मैं जर्सी रीस्ट क्लाइंट का उपयोग कर रीस्ट पोस्ट एपीआई कॉल करने का प्रयास कर रहा हूं। एपीआई डॉक्स है यूआरएल: विधि: पोस्ट हैडर जानकारी: - एक्स GWS-एपीपी-नाम: XYZ स्वीकार करें: आवेदन/json या application/xmlजर्सी में सामग्री प्रकार/एन्कोडिंग सेट करना REST क्लाइंट

मेरे नमूना जर्सी ग्राहक कोड

है
Client client = Client.create(); 

WebResource resource=client.resource(URL); 

resource.accept(javax.ws.rs.core.MediaType.APPLICATION_XML); 
resource.type(javax.ws.rs.core.MediaType.APPLICATION_XML); 
resource.type("charset=utf-8"); 
ClientResponse response = resource.post(ClientResponse.class,myReqObj); 

मैं पिछले 1 सप्ताह से इस कोड भिन्नता को आजमा रहा हूं और यह काम नहीं कर रहा है। इस संबंध में किसी भी मदद की अत्यधिक सराहना की जाती है।

उत्तर

7

मुश्किल हिस्सा यह है कि वेब रिसोर्स विधियां बिल्डर डिज़ाइन पैटर्न का पालन करती हैं, इसलिए यह एक बिल्डर ऑब्जेक्ट देता है जिसे आपको संरक्षित करने और आगे बढ़ने की आवश्यकता होती है क्योंकि आप अनुरोध के पूर्ण संदर्भ को सेट करने के लिए और विधियों को कॉल करते हैं।

जब आप resource.accept करते हैं, तो यह उस चीज़ को लौटाता है जिसे आप स्टोर नहीं करते हैं, इसलिए जब आप resource.type करते हैं तो यह खो जाता है और इसलिए केवल आपका अंतिम कॉल प्रभावी होता है।

आप आमतौर पर सभी मानदंडों को एक पंक्ति में सेट करेंगे, लेकिन आप आउटपुट को स्थानीय चर में भी सहेज सकते हैं।

ClientResponse response = client.resource(URL) 
           .accept(MediaType.APPLICATION_XML) 
           .type(MediaType.APPLICATION_XML) 
           .post(ClientResponse.class,myReqObj); 
+2

की तरह मुझे लगता है कि आप स्वीकार करते हैं और प्रकार लाइनों के छोर से अर्धविराम हटाने की जरूरत है। – FrontierPsycho

+0

अपमानजनक प्रतिलिपि/पेस्ट। :) यह अब तय है। धन्यवाद! – TheArchitect

+0

आपका स्वागत है और धन्यवाद। :) – FrontierPsycho

1

मुझे ऐसा लगता है।

Response response = webTarget.request(MediaType.APPLICATION_JSON_TYPE) 
    .accept(MediaType.APPLICATION_JSON_TYPE) 
    .post(Entity.entity(a, "application/json; charset=UTF-8")); 
यहाँ

, 'एक' खाता वर्ग उदाहरण है, जिसमें

@XmlRootElement 
public class account { 
... 
... 
} 
+0

क्या यह जर्सी 2 के लिए है? ऐसा लगता है ... असामान्य, शायद आप थोड़ा विस्तार का विस्तार कर सकते हैं? – Nenotlep

संबंधित मुद्दे