2011-11-14 2 views
2

Grailsサービス内から外部APIにファイルをPOSTするためにHTTPを使用しようとしています。私は残りのプラグインをインストールしていると私は、次のようなコードを使用しています:grailsにファイルを投稿するには

def theFile = new File("/tmp/blah.txt") 
def postBody = [myFile: theFile, foo:'bar'] 
withHttp(uri: "http://picard:8080/breeze/project/acceptFile") { 
    def html = post(body: postBody, requestContentType: URLENC) 
} 

ポストの作品は、しかし、「のmyFile」paramが文字列ではなく、実際のファイルのように見えます。ほとんどの結果がフォームからアップロードされたファイルを扱うことになってしまったので、 "grailsにファイルを投稿する方法"のようなものをgoogleで試してみることに成功していません。

私は適切なrequestContentTypeを使用していると思いますが、ドキュメントに何か不足している可能性があります。

答えて

0

ファイルを投稿することは、あなたの質問に(悲しいことに)含まれているほど単純ではありません。また、呼び出すAPIが何を予期しているかによっても異なります。いくつかのAPIはファイルをbase64でエンコードされたテキストとして扱いますが、他の人はmime-multipartとして受け入れます。

残りのプラグインを使用しているので、Apache HttpClientを使用している限り、this linkは十分な情報を提供する必要があります(mime-multipartを扱っていると仮定します)。 APIを使って作業するためにそれを変更するのはあまり難しいことではなく、おそらくそれをちょっとしたものにしてください。

関連する問題