Google app engine 使用PUT方法传递参数

Google app engine 使用PUT方法传递参数,google-app-engine,google-cloud-endpoints,Google App Engine,Google Cloud Endpoints,我使用以下方法定义了端点: @ApiMethod(name=“update”,path=“properties/{id}”,httpMethod=httpMethod.PUT) public void update(@Named(“id”)Long id,RealEstatePropertyAPI propertyAPI, 用户(用户){ 在客户端,我尝试了几个调用,但没有一个调用填充服务器端的propertyAPI对象。创建实例时,除了id之外,所有字段都设置为null var jsonId

我使用以下方法定义了端点:

@ApiMethod(name=“update”,path=“properties/{id}”,httpMethod=httpMethod.PUT)
public void update(@Named(“id”)Long id,RealEstatePropertyAPI propertyAPI,
用户(用户){
在客户端,我尝试了几个调用,但没有一个调用填充服务器端的
propertyAPI
对象。创建实例时,除了
id
之外,所有字段都设置为
null

var jsonId={'id':'11'};
var x={“名称”:“测试”,“地址”:{“街道”:“白宫”};
gapi.client.realestate.update(jsonId,x).execute(函数(resp){
console.log('propertyeedid');
控制台日志(resp);
});

var jsonId={'id':'11'};
var x={“名称”:“测试”,“地址”:{“街道”:“白宫”};
更新(jsonId,{'resource':x}).execute(函数(resp){
console.log('propertyeedid');
控制台日志(resp);
});
Java类:

公共类RealEstatePropertyAPI{
私人长id;
私有字符串名称;
专用地址API地址;
公共不动产物业亚皮(){
}
公共长getId(){
返回id;
}
公共无效集合id(长id){
this.id=id;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共地址API getAddress(){
回信地址;
}
公共无效设置地址(AddressAPI地址){
this.address=地址;
}
}
公共类地址API{
私人长id;
私家弦街;;
私人城市;
私有字符串状态;
私人字符串拉链;
私人国家;
公共地址API(){
}
公共长getId(){
返回id;
}
公共无效集合id(长id){
this.id=id;
}
公共字符串getStreet(){
返回街;;
}
公共街道(字符串街){
这条街;
}
公共字符串getCity(){
回归城市;
}
公共城市(字符串城市){
this.city=城市;
}
公共字符串getState(){
返回状态;
}
公共无效设置状态(字符串状态){
this.state=状态;
}
公共字符串getZip(){
返回拉链;
}
公共void setZip(字符串zip){
this.zip=zip;
}
公共字符串getCountry(){
返回国;
}
公共国家/地区(字符串国家/地区){
这个国家=国家;
}
}

我并不确定这一点,但您可以尝试在单个对象中传递所有参数,我的意思是用括号括住参数,如下所示:

//var jsonId = { 'id': '11'};
var x = {"name": "Test","address": { "street": "White House"}};
gapi.client.realestate.update({'id': '11', 'resource' : x}).execute(function(resp) {
    console.log('PropertyEdited');
    console.log(resp);
});

因为事实上,在两个请求中,您都发送了两个对象…
并且我认为您必须使用
'resource'
作为POST数据中的参数,就像在第二个选项中一样…

{code>{{“id”:“11”},{“resource”:{“name”:“Test”,“address”:{“street”:“White House”}}}不是有效的
JSON
字符串。我用@Sydney对它进行了测试,你确实是对的!我编辑了答案…关键是要发送一个对象作为参数…我尝试了你的
JSON
字符串,但仍然有相同的问题,
id
填充了
11
,但没有创建
propertyAPI
对象但没有被填充。听起来像是个bug?