2016-05-13 4 views
0

Ich versuche, eine REST-API über die WS-Lite aufrufen. Hole funktioniert großartig, aber einen Post mit einer Json-Payload zu rufen funktioniert nicht. Bit eines Noob aber von Github Notizen Wiki Ich bin nicht sicher https://github.com/jwagenleitner/groovy-wsliteGroovy Ws-Lite REST Post mit Json Payload

@Grab('com.github.groovy-wslite:groovy-wslite:1.1.2') 
import wslite.rest.* 
import groovy.json.JsonBuilder 
def client = new RESTClient("https://d.la10.salesforceliveagent.com/chat/rest") 
def response = client.get(path:'/System/SessionId', headers:['X-LIVEAGENT- API-VERSION':'36','X-LIVEAGENT-AFFINITY':'null']) 

def skey = response.json.key 
def sid = response.json.id 
def stoken = response.json.affinityToken 


client.post(path:'/Chasitor/ChasitorInit', headers:['X-LIVEAGENT-API-VERSION':'36','X-LIVEAGENT-SESSION-KEY':skey,'X-LIVEAGENT-AFFINITY':stoken,'X-LIVEAGENT-SEQUENCE':'1']) 
{ 
    type ContentType.application/json 
     json { 
      "organizationId": "00D28000000f5N9", 
      "deploymentId": "572280000008R6L", 
      "buttonId": "573D000000000OC", 
      "agentId": "005B0000000F3b2", 
      "doFallback": true, 
      "sessionId": sid, 
      "userAgent": "Lynx/2.8.8", 
      "screenResolution": "2560x1440", 
      "visitorName": "Jon A", 
      "prechatDetails": [],"prechatEntities": [], 
      "receiveQueueUpdates": true, 
      "isPost": true 
     } 
} 

neugierig, wenn jemand an ein Beispiel für einen Post mit REST über ws-lite von groovy hat. Ich bekomme einfach Kompilierungsfehler basierend auf dem JSON-Format. Jeder Einblick geschätzt

Antwort

0

Die json Methode innerhalb des post Block wird eine Karte als Parameter erwartet, so dass die folgenden funktionieren würde (im Grunde die Klammern Klammern aus):

.... 
.... 
client.post(path:'/Chasitor/ChasitorInit', headers:['X-LIVEAGENT-API-VERSION':'36','X-LIVEAGENT-SESSION-KEY':skey,'X-LIVEAGENT-AFFINITY':stoken,'X-LIVEAGENT-SEQUENCE':'1']) 
{ 
    type ContentType.application/json 
     json ["organizationId": "00D28000000f5N9", 
      "deploymentId": "572280000008R6L", 
      "buttonId": "573D000000000OC", 
      "agentId": "005B0000000F3b2", 
      "doFallback": true, 
      "sessionId": sid, 
      "userAgent": "Lynx/2.8.8", 
      "screenResolution": "2560x1440", 
      "visitorName": "Jon A", 
      "prechatDetails": [],"prechatEntities": [], 
      "receiveQueueUpdates": true, 
      "isPost": true] 
} 

Da die Karte der einzige Parameter ist, dass Sie sollte auch in der Lage sein, die Klammern wegzulassen.