7

この api documentationを考えると、HTTPBuilder と Groovy を使用してクエリを作成するにはどうすればよいですか? いろいろ試しましたが、うまくいきません。

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 ファイルがアップロードされます。体は完全に無視されているようです。削除しても同じ結果になります。これがどのように行われるかについての良い参考文献が見つからないようです。

4

1 に答える 1

14

上記のドキュメントの 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'
) 
于 2012-02-10T07:51:42.423 に答える