【问题标题】:Converting application/pdf, text/html data to multipart/form-data in datapower在 datapower 中将 application/pdf、text/html 数据转换为 multipart/form-data
【发布时间】:2020-02-02 20:11:08
【问题描述】:

我们有一个场景,我们从第一个后端接收作为内容类型 application/pdf 或 text/html 或 text/xml 数据的文档,我们需要将其传递给另一个后端,该后端将只接受多部分/表单的数据-数据。我附上了我的代码 sn-p。还有如何在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) {

)

【问题讨论】:

  • 如果您遇到类似的情况,请任何人提出建议,以及在 DataPower 中是否可以进行这种集成

标签: javascript xslt multipartform-data ibm-datapower


【解决方案1】:

这是可能的,但您需要构建完整的 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 标题中不得包含破折号! 您还应该在 MIME 数据中使用\r\n 换行。

在此处查看有关 MIME 标准的更多信息:https://www.ietf.org/rfc/rfc2046.txt

【讨论】:

    猜你喜欢
    • 2015-12-20
    • 2014-10-31
    • 2020-11-26
    • 2020-01-26
    • 2021-11-03
    • 2021-11-02
    • 2013-07-26
    • 2018-12-16
    • 2016-12-22
    相关资源
    最近更新 更多