Publish extension to chrome store programmatically

I tried to publish chrome extension using the api google provided.
The response I get:

org.apache.http.client.ClientProtocolException

My code:

httpReq.addHeader("Authorization", "Bearer " + GoogleWebStoreDeveloperAuthService.getAccess_token());
httpReq.addHeader("x-goog-api-version", "2");
httpReq.addHeader("Content-Length", "0");
if(!isPublishToPublic)
    httpReq.addHeader("publishTarget", "trustedTesters");

JSONObject responseItemInfo = null;
try {
    HttpClient httpclient = HttpClientBuilder.create().build();
    HttpResponse response = httpclient.execute(httpReq);
    log.info("response = " + response.toString());
    StringBuilder responseString = new StringBuilder();
    int statusCode = response.getStatusLine().getStatusCode();
    String message = response.getStatusLine().getReasonPhrase();
    HttpEntity responseHttpEntity = response.getEntity();
    InputStream content = responseHttpEntity.getContent();
    BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
    String line;
    while ((line = buffer.readLine()) != null) {
        responseString.append(line);
    }
    if (responseString.length() > 0) {
        responseItemInfo = new JSONObject(responseString.toString());
    }
    EntityUtils.consume(responseHttpEntity);

    } catch (Exception e) {
        log.severe("can not itemPublishImpl = " + e.toString());
        log.severe(e.getMessage());
    }
    String uploadState = null;
    if(responseItemInfo != null){
        itemId = String.valueOf(responseItemInfo.get("id"));
        uploadState = String.valueOf(responseItemInfo.get("uploadState"));
    }
    saveItem(itemId,installerId,uploadState,isPublishToPublic);
    } catch (Exception e) {
        log.severe("can not itemPublishImpl = " + e.toString());
    }

I tried to use postman and curl command line and it worked and return me the correct response.

what is the problem?
Thank you,
Gal.