Как разместить файл в Grails - PullRequest
2 голосов
/ 15 ноября 2011

Я пытаюсь использовать HTTP для отправки файла во внешний API из службы grails. Я установил плагин rest и использую код, подобный следующему:

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' выглядит скорее как строка, чем как файл. Я не добился успеха, пытаясь найти в Google такие вещи, как «как разместить файл в Grails», так как большинство результатов в конечном итоге связано с обработкой загруженного файла из формы.

Я думаю, что использую правильный requestContentType, но я мог что-то пропустить в документации.

1 Ответ

0 голосов
/ 23 ноября 2011

Размещение файла не так просто, как то, что вы включили в свой вопрос (к сожалению). Кроме того, это зависит от того, что ожидает API, который вы вызываете, например, некоторые API ожидают файлы в виде текста в кодировке base64, в то время как другие принимают их как mime-multipart.

Поскольку вы используете плагин rest, насколько я помню, он использует Apache HttpClient, я думаю, эта ссылка должна предоставить достаточно информации, чтобы вы могли начать (если вы имеете дело с mime-multipart ). Не должно быть слишком сложно изменить его для работы с вашим API и, возможно, сделать его немного «отличным»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...