public class ApiClient {
private HttpClient httpClient;
private HttpRequest httpRequest;
public VmCreateResponse vmCreate(VmCreateRequest vmCreateRequest) throws ApiException {
this.httpRequest.setAction("vmCreate");
this.httpRequest.setBody(vmCreateRequest);
ApiResponse<VmCreateResponse> resp = this.httpRequest.excute(this.httpRequest );
return (VmCreateResponse)resp.getData();
}
}
使用@Autowired注入类 ApiClient时,ApiClient内部有个属性是
private HttpRequest httpRequest;
,并发情况下,ApiClient执行的方法中使用httpRequest携带的参数去做http请求,会导致两个不同的请求变成两个请求参数相同的请求,因为httpRequest是全局唯一的。