Come utilizzare il docker api remoto per creare il contenitore In java?

Voglio usare api remoto a questo punto . Sono riuscito a creare questo contenitore:

curl -v -X POST -H "Content-Type: application/json" -d '{"Image": " registry:2",}' http://192.168.59.103:2375/containers/create?name=test_remote_reg 

Quindi, utilizzo HttpClient (4.3.1) in java per cercare di creare contenitore tramite questo codice:

  String containerName = "test_remote_reg"; String imageName = "registry:2"; String url = DockerConfig.getValue("baseURL")+"/containers/create?name="+containerName; List<NameValuePair> ls = new ArrayList<NameValuePair>(); ls.add(new BasicNameValuePair("Image",imageName)); UrlEncodedFormEntity fromEntity = new UrlEncodedFormEntity(ls, "uTF-8"); HttpPost post = new HttpPost(url); post.setHeader("Content-Type", " application/json"); if(null!=fromEntity) post.setEntity(fromEntity); HttpClient client = new DefaultHttpClient(); client.execute(post); 

Non ha funzionato e getta l'errore:

 invalid character 'I' looking for beginning of value 

Basta aggiungere le informazioni dell'intestazione e aggiungere la coppia param su "Image: test_remote_reg".
Cosa c'è di sbagliato nel mio codice java? Che differenza c'è tra loro? Cosa devo modificare per il mio codice java?

Considerando che si tratta di una chiamata json, è ansible utilizzare una delle risposte di HTTP POST utilizzando JSON in Java , ad esempio (sostituire la parte JSON con i parametri JSON):

 HttpClient httpClient = new DefaultHttpClient(); try { HttpPost request = new HttpPost("http://yoururl"); StringEntity params =new StringEntity("details={\"name\":\"myname\",\"age\":\"20\"} "); request.addHeader("content-type", "application/json"); request.addHeader("Accept","application/json"); request.setEntity(params); HttpResponse response = httpClient.execute(request); // handle response here... }catch (Exception ex) { // handle exception here } finally { httpClient.getConnectionManager().shutdown(); }