如何在angular2 post请求中发送2个对象

Ela*_*nda 0 java http jersey typescript angular

我有这个代码:

客户端(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)
          );
      }
Run Code Online (Sandbox Code Playgroud)

服务器端:

@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 {....}
Run Code Online (Sandbox Code Playgroud)

我知道如何在帖子中发送一个对象,但如何在帖子请求中发送2个对象?

rml*_*lan 5

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

但是,这里的潜在解决方案是创建一个包装这两个对象的对象.

请求对象

public SaveConfigRequest {
    private MyObj myObject;
    private CountryGasStationConfig countryGasStationConfig;


    //getters and setters
}
Run Code Online (Sandbox Code Playgroud)

新方法签名

public void saveConfig(SaveConfigRequest request)
Run Code Online (Sandbox Code Playgroud)

示例Json文档

{
  "myObject": {...},
  "countryGasStationConfig": {...}
}
Run Code Online (Sandbox Code Playgroud)