मेरे पास एक HTTP प्रतिक्रिया है। मैं scala का उपयोग करके इसमें से किसी एक शीर्षलेख के लिए मान प्राप्त करने का प्रयास कर रहा हूं। मेरा कोड नीचे जैसा दिखता है:

import scalaj.http.Http

val result = Http("http:///sample.com")
  .postData("""{"Username":"user1","password":"pass"""")
  .header("Content-Type", "application")
  .header("Accept", "text/plain")
val headers = result.headers.mkString

println("Headers: " + headers)

शीर्षलेख नीचे जैसा दिखता है:

Cache-Control -> Vector(no-Store)
Content-Type -> Vector(text/html;charset=ISO-8859-l)
Set-Cookie -> Vector(SESSIONID=D122334;path=/a/b/c;SSO=000112233445)

इस हेडर में से, मैं अकेले SSO मान निकालना चाहता हूँ। नीचे दिए गए कोड का उपयोग करके, मैं उन्हें ठीक से प्रिंट करने में सक्षम हूं।

for((k,v) <- result.headers) println(s"key: $k\nvalue: $v\n")

निम्नलिखित परिणाम प्राप्त करना:

key: Cache-Control
value: Vector(no-Store)

key: Content-Type
value: Vector(text/html;charset=ISO-8859-l)

key: Set-Cookie
value: Vector(SESSIONID=D122334;path=/a/b/c;SSO=000112233445)

मैं अकेले Set-Cookie कुंजी के तहत SSO के लिए डेटा निकालना चाहता हूं। मुझे पता है कि पायथन का उपयोग करके इसे कैसे प्राप्त किया जाए

मैं स्कैला के लिए काफी नया हूँ। क्या कोई कृपया यहाँ मेरी मदद कर सकता है?

1
Vaishak 15 जून 2020, 10:06

1 उत्तर

सबसे बढ़िया उत्तर

cookies विधियों का उपयोग करें और कुकी को नाम से फ़िल्टर करें

  val ssoToken = Http("http:///sample.com")
    .postData("""???""")
    .header("Content-Type", "application")
    .header("Accept", "text/plain")
    .asBytes
    .cookies
    .find(_.getName == "SSO")
    .map(_.getValue)

टोकन मिलने पर आपको Some("tokenValue") मिलेगा, यदि आप इसे String के रूप में प्राप्त करना चाहते हैं, तो आप निम्न कार्य कर सकते हैं

ssoToken.getOrElse(sys.error("SSO Token not found"))

टोकन नहीं मिलने पर यह एक अपवाद फेंक देगा

1
Ivan Stanislavciuc 15 जून 2020, 07:34