У меня есть требование по обновлению билетов Zendesk с использованием Groovy HTTP Builder. Я использую следующий код:Обновление данных JSON с помощью HTTP Builder Groovy с использованием 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 и отправляю его через тело. Нет ошибок. Он находится в форме {"ticket": [{"subject ":" xyz "}]} Но значение не обновляется. –
Если я использую тип содержимого как URLENC, я получаю следующую ошибку ava.lang.NullPointerException: Не удается получить объект« объект »на нулевом объекте –