/ / स्प्रे आईओ क्लाइंट - जेसन, स्कैला, आईओ, स्प्रे के साथ JSON अनुरोध भेज रहा है

स्प्रे आईओ क्लाइंट - जेसन, स्कैला, आईओ, स्प्रे के साथ जेएसओएन अनुरोध भेजना

अभी मैं स्कैला में एक छोटा एपीआई बना रहा हूं जो अनुरोध और प्रतिक्रियाओं को संभालने के लिए स्प्रे.आईओ फ्रेमवर्क का उपयोग करता है।

जब मेरा / अपडेट यूआरएल कहा जाता है तो मैं इस अनुरोध के साथ वास्तविक अपडेट को संसाधित करने के लिए एक और एपीआई कॉल करना चाहता हूं, मैं कुछ JSON डेटा जोड़ना चाहता हूं।

इसके लिए मैं निम्नलिखित कोड का उपयोग करता हूं:

  val message: String = "{"elements":[{"id":"2","attributes":[{"name":"value","type":"float","value":"46"}]}],"updateAction":"UPDATE"}"
val url: String = "http://[domain]/update"

val pipeline: HttpRequest => Future[HttpResponse] = sendReceive
val response: Future[HttpResponse] = pipeline(
Post(url, message)
~> addHeaders(List(
RawHeader("Content-Type", "application/json")
))
)

response onComplete { completedResponse =>
println("Response: "+completedResponse.get.message.entity.asString)
}

लेकिन जब मैं लॉग की जांच करता हूं तो मैं देख सकता हूं कि सामग्री-प्रकार वास्तव में सेट हो जाता है text/plain; charset=utf-8, ऐसा इसलिए होता है क्योंकि स्प्रे आईओ क्लाइंट वास्तव में सामग्री-प्रकार को निर्धारित करता है।

तो मेरा सवाल यहाँ है; वास्तव में मेरे संदेश को पहचानने के लिए मैं स्प्रे आईओ कैसे प्राप्त कर सकता हूं Content-Type:application/json..

कोई विचार? बहुत सराहना की जाएगी :)

उत्तर:

जवाब के लिए 2 № 1

आपको उचित सामग्री प्रकार के साथ HttpEntity बनाना चाहिए:

Post(url, HttpEntity(ContentTypes.`application/json`, message))

यह बात दस्तावेज़ों में समझाई गई http://spray.io/documentation/1.2.3/spray-http/#content-type-header


जवाब के लिए 2 № 2

आपको उचित सामग्री प्रकार के साथ HttpEntity बनाना चाहिए:

Post(url, HttpEntity(ContentTypes.`application/json`, message))

यह बात दस्तावेज़ों में समझाई गई http://spray.io/documentation/1.2.3/spray-http/#content-type-header