2013-12-14 16 views
20

के साथ खाली निकाय पोस्ट करें मैं जर्सी 2 क्लाइंट के साथ खाली निकाय के साथ एक पोस्ट अनुरोध कैसे सबमिट करूं?जर्सी 2 क्लाइंट

final MyClass result = ClientBuilder.newClient() 
    .target("http://localhost:8080") 
    .path("path") 
    .queryParam("key", "value") 
    .request(APPLICATION_JSON) 
    .post(What to fill in here if the body should be left empty??, MyClass.class); 

अद्यतन: इस काम करता है:

final MyClass result = ClientBuilder 
    .newBuilder().register(JacksonFeature).build() 
    .target("http://localhost:8080") 
    .path("path") 
    .queryParam("key", "value") 
    .request(APPLICATION_JSON) 
    .post(null, MyClass.class); 
+0

मैं पार्टी के लिए देर हो रही है, लेकिन FWIW अपने अद्यतन मेरी विशेष समस्या का जवाब है - विशेष रूप से मैं एक Content-Type हैडर :) –

उत्तर

18

मैं डॉक्टर कहीं भी में इस नहीं मिल सकता है, लेकिन मेरा मानना ​​है कि आप null उपयोग कर सकते हैं एक खाली शरीर पाने के लिए:

final MyClass result = ClientBuilder.newClient() 
    .target("http://localhost:8080") 
    .path("path") 
    .queryParam("key", "value") 
    .request(APPLICATION_JSON) 
    .post(Entity.json(null), MyClass.class) 
+0

मुझे लगता है कि कोशिश की, लेकिन एक 'MessageBodyProviderNotFoundException मिला नहीं करना चाहती: MessageBodyWriter मीडिया प्रकार = एप्लिकेशन/जेसन के लिए नहीं मिला, ... '? – Stine

+0

वैसे यह एक पूरी तरह से अलग समस्या है ... आपको या तो डिफ़ॉल्ट जैक्सन फीचर पंजीकृत करना चाहिए, या अपना खुद का संदेशबॉडीवाइटर/रीडर – Alden

+0

लिखना चाहिए आह मैं देखता हूं कि आपने उपरोक्त लिखा है, क्षमा करें। तो 'शून्य' सही जवाब है, है ना? – Alden

4

मुझे नहीं पता कि संस्करण इसे बदलता है या नहीं। लेकिन, निम्नलिखित काम नहीं करता है:

builder.put(Entity.json(null) );

कहाँ है, तो निम्न ठीक काम करता है:

builder.put(Entity.json("") );

5

मैंने पाया कि यह मेरे लिए काम किया:

Response r = client 
    .target(url) 
    .path(path) 
    .queryParam(name, value) 
    .request() 
    .put(Entity.json("")); 

दर्रा एक खाली स्ट्रिंग, शून्य मूल्य नहीं।

+0

बहुत धन्यवाद, यह मेरे लिए भी काम करता है। –

2

बस एक खाली txt पोस्ट करें।

.post(Entity.text("")); 
संबंधित मुद्दे