У меня возникли проблемы с загрузкой файла в веб-службу с использованием Faraday.Как загрузить файл в формате pdf с помощью faraday с заголовком
conn = Faraday.new('http://myapi') do |f|
f.request :multipart
f.adapter Faraday.default_adapter
end
payload = Faraday::UploadIO.new(file_io, 'application/pdf')
conn.post '/upload', payload
Java-апи принимает POST
к 'Content-Type' => 'multipart/form-data'
. Запрос должен отправить файл с требуемыми границами. Это не. Когда запрос перехвачен, он показывает, что заголовок установлен в x-url encoded
. Если заголовок установлен в Content-Type
, граница не добавляется faraday.
API-интерфейс бросает,
2016-05-09 11: 36: 03068 [1] [e02b7381] [причал-139] ИНФО com.fm.rest.services.interceptor.RequestLoggingInInterceptor - Запрос информации: POST http://localhost:8080/api/projects/1/files/f719137f-702a-4801-9654-95f5a58d78f2 ISO-8859-1 Заголовки многочастному/form-данных: {Accept = [/], Accept-Encoding = [GZIP; д = 1,0, выкачать; д = 0,6, идентичность; д = 0.3], connection = [close], Content-Length = [217115], content-type = [multipart/form-data], Host = [localhost: 8080], User-Agent = [Ruby], X-Newrelic-Id = [12YHU123wsC123wE =], X-Newrelic-Transaction = [P9TDFcABCAEEVQ8JFTs =]} 2016-05-09 11: 36: 03,072 [1] [e02b7381] [ причал-139] WARN org.apache.cxf.phase.PhaseInterceptorChain - перехватчик для {http://services.rest.fm.api.com/} DirectoryRestService бросил исключение, раскручивая в настоящее время org.apache.cxf.interceptor.Fault: не удалось определить границу из сообщения ! в org.apache.cxf.interceptor.AttachmentInInterceptor.handleMessage (AttachmentInInterceptor.java:66)
Я не могу установить заголовок в запросе на пост
Возможный дубликат [Загрузить файлы с помощью Фарадей] (http://stackoverflow.com/questions/16725195/upload-files-using -faraday) – anquegi