2012-02-09 14 views
7

Dato questo api documentation, come utilizzerei HTTPBuilder e Groovy per costruire la mia query? Ho provato più cose, ma non ho capito bene.Utilizzo dell'API REST di Artifactory per distribuire il file jar

def http = new HTTPBuilder() 
http.request('http://artifactory:8888/libs-snapshot-local/my/jar/1.0/test-jar-1.0.jar', PUT, JSON) { req -> 

     body = [ 
      uri: "http://artifactory:8888/libs-snapshot-local/my/jar/1.0/test-jar-1.0.jar", 
      downloadUri: "http://artifactory:8888/libs-snapshot-local/my/jar/1.0/test-jar-1.0.jar", 
      repo: "libs-snapshot-local", 
      path: "c:\\pathtojarfile\\test.jar", 
      created: "2012-02-03T08:37:12.599-0800", 
      createdBy: "someuser", 
      size: "1024", 
      mimeType: "application/java-archive" 

     ] 

    response.success = { resp, json -> 


    } 

    } 

Questo sembra farmi parzialmente parte lì, ma carica un file jar vuoto. Sembra che il corpo sia completamente ignorato. La rimozione produce lo stesso risultato. Non riesco a trovare un buon riferimento su come è fatto.

risposta

13

Il JSON nella documentazione di cui è in realtà risposta di Artifactory alla richiesta distribuzione.
Per la distribuzione, Artifactroy richiede solo una semplice richiesta PUT, ad esempio:

def restClient = new RESTClient('http://localhost:8080/artifactory/libs-release-local/') 
restClient.auth.basic 'username', 'password' 
restClient.encoder.'application/zip' = this.&encodeZipFile 
def encodeZipFile(Object data) throws UnsupportedEncodingException { 
    def entity = new FileEntity((File) data, 'application/zip'); 
    entity.setContentType('application/zip'); 
    return entity 
} 
def response = restClient.put(path: 'org/artifact/1.0/artifact-1.0.jar', 
     body: new File('/path/to/local/artifact.jar'), 
     requestContentType: 'application/zip' 
) 
+0

questo ha funzionato! Grazie! La documentazione è un po 'confusa. Alcuni di loro dicono "Sample output" e alcuni dicono "Sample usage". The Deploy api aveva "Sample usage" .... che pensavo sarebbe stato come chiamare l'api. – stuff22

Problemi correlati