我正在使用REST构建器插件通过HTTP将请求从一个Grails服务器发送到另一个服务器。
发件人
restClient.get(path: "/shipping",
query:[dress: dress]
发件人日志:
2014-03-24 23:32:20,299 [main] DEBUG http.wire - >> "GET /shipping?dress=MyDress(payPassId:2,+dateCreated:Mon+Mar+24+23:32:20+GMT+2014,+dateLastActive:Mon+Mar+24+23:32:20+GMT+2014,+nickName:null,+recipientName:null,+defaultAddress:null,+street1:null,+street2:null,+street3:null,+city:null,+state:null,+country:null,+postalCode:12345,+recipientPhoneNumber:null,+recipientPhoneNumberCountryCode:null) HTTP/1.1[EOL]"
接收者试图获得着装对象
MyDress mydress = params.dress;
错误信息是:
无法转换对象'MyDress(payPassId:2,+dateCreated:Mon+Mar+24+23:32:20+GMT+2014,+dateLastActive:Mon+Mar+24+23:32:20+GMT+2014,+nickName:null,+recipientName:null,+defaultAddress:null,+street1:null,+street2:null,+street3:null,+city:null,+state:null,+country:null,+postalCode:12345,+recipientPhoneNumber:null,+recipientPhoneNumberCountryCode:null)' with class 'java.lang.String' to class 'MyDress'
我在这里缺少一些神奇的API吗?
答案 0 :(得分:1)
此类数据与Grails不兼容。您需要将数据作为JSON
发送,或者将它们作为单独的参数发送,并使用以下命令创建对象的新实例:
MyAddress instance = new MyAddress(params)
您可能正在发送对象的toString()
而不是数据(RESTClient可能需要Map而不是MyDress)。