我有更新使用Groovy的HTTP生成器的Zendesk門票的需求。我使用下面的代碼更新JSON數據與Groovy的HTTP生成器使用PUT
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.0-RC2')
import java.util.Properties;
import java.io.InputStream;
import java.io.ByteArrayInputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import groovyx.net.http.*;
import static groovyx.net.http.Method.*;
import groovy.json.*;
import groovyx.net.http.ContentType;
def jsonBuilder = new groovy.json.JsonBuilder();
class MyTicket
{
def subject
}
def myTicket = new MyTicket(
subject: 'xyz'.toString()
)
def ticketList=[myTicket]
jsonBuilder(ticket:ticketList)
println(jsonBuilder)
def authSite = new HTTPBuilder('https://{subdomain}.zendesk.com/api/v2/tickets/{ticketid}.json');
authSite.auth.basic 'username', 'password';
authSite.request(Method.PUT, ContentType.JSON)
{ req ->
uri.path = ''https://{subdomain}.zendesk.com/api/v2/tickets/{ticketid}.json'';
requestContentType = ContentType.JSON;
headers.Accept = 'application/json';
body =[jsonBuilder]
response.success = { resp, reader->
reader.ticket.subject;
}
}
但是票證沒有被更新。有沒有任何一種執行方法。請建議我哪裏出錯了。
任何錯誤?什麼是json的樣子?這可以嗎?很難看到發生了什麼,代碼有點亂.-( –
@tim_yates:最初我正在構建JSON並通過body發送它,沒有錯誤,它的格式是{「ticket」:[{「subject 「:」 XYZ「}]},但值未更新 –
如果我使用的內容類型URLENC我收到以下錯誤ava.lang.NullPointerException:。空對象 –