2016-09-22 19 views
0

我有这样的代码:如何发送2对象在angular2交请求

客户端(angular2)

 saveConfig(configType: ConfigTypes, gasConfigModel: GasConfigModel): any { 
     console.info("sending post request"); 
     let headers = new Headers({ 
      'Content-Type': 'application/json' 
     }); 

.... 

     return this.http 
      .post(this.url, formParamString, ??, {headers: headers}) 
      .map(res => res.json()) 
      .subscribe(
      data => { 
       console.info("next: "); 
       console.info(data) 
      }, 
      err => console.error(err) 
     ); 
     } 

服务器侧:

@Path("/SaveConfig") 
@POST 
@Consumes(MediaType.APPLICATION_JSON + ";charset=utf-8") 
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8") 
public void saveConfig(MyObj my object, CountryGasStationConfig countryGasStationConfig) throws Exception {....} 

我知道如何发送一个对象在后,但我怎么发送2对象在发布请求?

回答

4

由于您使用Json作为您的媒体,因此在技术上不可能实现这一点,因为单个文档中的两个独立的任意对象将是无效的Json。

但是,这里可能的解决方案是创建一个包装这两个对象的对象。

请求对象

public SaveConfigRequest { 
    private MyObj myObject; 
    private CountryGasStationConfig countryGasStationConfig; 


    //getters and setters 
} 

新方法签名

public void saveConfig(SaveConfigRequest request) 

例JSON文档

{ 
    "myObject": {...}, 
    "countryGasStationConfig": {...} 
} 
0

到发送两个对象用不同的键值, 它们结合起来,大的物体上,如:

obj1; 
obj2; 
obj2send={ 
'obj1':obj1, 
'obj2':obj2 
}; 

现在这个obj2send中有两个对象