2012-02-09 20 views
7

このapi documentationを指定すると、HTTPBuilderとGroovyを使用してクエリを構築するにはどうすればよいですか?私は複数のことを試みましたが、私はそれを正しくしません。ArtifactoryのREST APIを使用して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 -> 


    } 

    } 

これは私のところにあるようですが、空のjarファイルをアップロードします。体が完全に無視されているようです。それを削除すると同じ結果が得られます。私はこれがどのように行われたかについての良い参考文献を見つけることができないようです。

答えて

13

上記のドキュメントのJSONは、デプロイメント要求に対して実際にArtifactoryのの応答です。展開のために
、Artifactroyは例えば、単純なPUTリクエストが必要です。

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

がこの仕事を!ありがとうございました!ドキュメントはちょっと混乱しています。彼らの中には "サンプル出力"とか "サンプル使用"とかいうものがあります。デプロイAPIには「サンプル使用法」がありました...私はAPIをどのように呼び出すかと思いました。 – stuff22

関連する問題