2016-09-22 50 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中有兩個對象