Преобразование данных application / pdf, text / html в multipart / form-data в базе данных - PullRequest
0 голосов
/ 02 февраля 2020

У нас есть сценарий, в котором мы получаем документ в виде приложения типа контента / pdf или text / html или text / xml данных из первого бэкэнда, который нам нужно передать другому бэкэнду, который будет принимать только данные как multipart / form-data. Я приложил свой фрагмент кода. Также как установить граничное значение в datapower?

Данные не передаются в виде данных формы второму бэкэнду.

Фрагмент кода моего шлюза выглядит следующим образом:

var urlopen = require('urlopen');
var sm = require('service-metadata');
var hm = require('service-metadata');
var ctx = session.name('message') || session.createContext('message');
session.input.readAsBuffer(function(error, buffer){
 if (error) {
   //an error occurred when parsing the content,
    throw error;
   }
var uuid = (session.name('message').getVar('uuid'));
var boundary = (session.name('message').getVar('boundary'));
var ctype = hm.current.get('Content-Type');

var options = {
target:'targeturl',
headers : hm.current.get(),
method: 'post',
data: boundary+ '\n' +" Content-Disposition:form-data; name="+'"'+"fileContent"+'"' + "hello.html" +'"\n' + "Content-Type: text/html" + '\n' + buffer.toString() +'\n' + boundary +'\n'
};

urlopen.open(options,function (error, response) {
if (error) {
session.output.write("openCallback error: " + error.errorMessage+"\n");
}
else {
 if (response.statusCode != 200) {

)

1 Ответ

0 голосов
/ 17 марта 2020

Возможно, но вам нужно будет собрать полную форму MIME и установить для нее правильные заголовки. Например, Content-Type должен быть установлен примерно так:

'Content-Type: multipart/form-data; charset=utf-8; boundary=' + boundary;

Вам также необходимо добавить границы MIME, например:

--my_fine_boundary_1234
Content-Disposition:form-data; name=HELLO

--my_fine_boundary_1234--

Ваш код не показывает, если boundary имеет тире -- или не включена, но вам нужно добавить начальные и конечные черты, а в заголовке content-type черты НЕ должны быть включены! Вам также следует использовать \r\n для новых строк в данных MIME.

Подробнее о стандарте MIME см. Здесь: https://www.ietf.org/rfc/rfc2046.txt

...