2013-03-06 5 views
15

मैं HTTP POST को Play2/Scala WS API का उपयोग करके सेवा समापन बिंदु के लिए अनुरोध करने का प्रयास करता हूं। चूंकि HTTP POST शरीर में भेजे जाने के लिए कोई पैरामीटर है, मैं इसे कैसेPlayframework 2/Scala में WS API का उपयोग करके खाली निकाय अनुरोध के साथ http पोस्ट कैसे करें?

WS.url("http://service/endpoint).post() 

मैं post() तर्क के बिना की कोशिश की है का उपयोग कर भेज सकते हैं, लेकिन यह मुझे एक त्रुटि दे दी है।

यूनिट का HTTP प्रतिक्रिया में एक उदाहरण नहीं लिख सकता है। लिखने योग्य [यूनिट]

क्या आप इस पर सहायता कर सकते हैं? पहले से

धन्यवाद ...

उत्तर

25

post के बाद से एक मूल्य है कि Writeable और ContentTypeOf प्रकार वर्गों को लागू करता है इंतजार कर रहा है, आप play.api.mvc से Results.EmptyContent उपयोग कर सकते हैं। (API देखें)

तो मुझे लगता है कि

WS.url("http://service/endpoint").post(Results.EmptyContent()) 

करना चाहिए। (परीक्षण नहीं किया गया)

11

प्ले 2.6 के लिए और बाद में, आपको play.api.libs.ws.EmptyBody का उपयोग करना होगा।

import play.api.libs.ws.{EmptyBody, WSClient} 
WS.url("http://service/endpoint).post(EmptyBody) 

विशिष्ट त्रुटि है:

Cannot find an instance of play.api.mvc.Results.EmptyContent to WSBody. Define a BodyWritable[play.api.mvc.Results.EmptyContent] or extend play.api.libs.ws.ahc.DefaultBodyWritables 
संबंधित मुद्दे