我需要将照片和访问令牌传递给后端REST服务。内容类型
is Multipart/form-data我创建了html表单和操作是esb的endpoint,我已经跟踪了通往ESB[A]和从ESB[B]出去的流量。这似乎幻灯片上的变化,我不知道解决这个问题。当我将捕获的流量发送到ESB[A]时,后端服务会接受它。但是由ESB[B]输出的流量不被后端接受。表示不识别边界中的值。上面写着“价值观是空的”
输出在发送到ESB的过程中–当此FWD发送到后端时,它可以识别==========================================================================
POST /services/postPhotoToAlbumHttpSoap11EndpointHTTP/1.1
主机:localhost:8280
连接:保持活力
内容长度:4623
缓存控制:最大年龄=0
接受:text/html、application/xhtml-xml、application/xml;q=0.9,图像/webp,/;q=0.8
来源:空
用户代理:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/32.0.1700.76 Safari/537.36
Content-Type:多部分/表单数据;边界=----WebKitFormBoundaryPSfmjvLcmpwvN6Gt
接受编码:gzip、deflate、sdch
接受语言:en-US,en;q=0.8
Cookie: menuPanel=可见;menuPanelType=主
X-Forwarded-For:0:0:0:0:0:0:0:1
----WebKitFormBoundaryPSfmjvLcmpwvN6Gt
内容配置:表单数据;name=“accessToken”
CAACEDEOSE0CBALXNBSNFZENJ7Ni1Bklyx0TbMFD4G5Bwifg3VNP9xWQDNT52MCWZA2DTESXYC4AMNOZAHFNUNO0JxV5IZC9PQZZJEWBZCHUOOEXNZPT5BMNCEAAFB3JU2ZCNLOZKYZCPTJLdNYNQHdRZC9670N0N0N0N0BowUohlH9ObejQYGZD
----WebKitFormBoundaryPSfmjvLcmpwvN6Gt
内容配置:表单数据;name=“source”;filename=“kdinesh_LThumb.jpg”
内容类型:图像/jpeg
ÿØÿà_
从ESB输出的输出==========================================================================
POST/10150897830516344/photos HTTP/1.1
接受语言:en-US,en;q=0.8
Cookie: menuPanel=可见;menuPanelType=主
接受编码:gzip、deflate、sdch
X-Forwarded-For:0:0:0:0:0:0:0:1
来源:空
内容类型:多部分/表单数据
接受:text/html、application/xhtml-xml、application/xml;q=0.9,图像/webp,/;q=0.8
缓存控制:最大年龄=0
传输-编码:分块
主机:api.localhost
连接:保持活力
用户代理:Synapse PT HttpComponents NIO
X-Forwarded-For:0:0:0:0:0:1127.0.0.1
1816年
--MIMEBOU 960DD4BB3066B1FF153BC3151E7776B65947BA8DD00425E
内容-处置:表单-数据;名称="access_token"
内容类型:文本/纯文本;字符集=US-ASCII
内容-传输-编码: 8bit
CAACEDEOSE0CBALXNBSNFZENJ7Ni1Bklyx0TbMFD4G5Bwifg3VNP9xWQDNT52MCWZA2DTESXYC4AMNOZAHFNUNO0JxV5IZC9PQZZJEWBZCHUOOEXNZPT5BMNCEAAFB3JU2ZCNLOZKYZCPTJLdNYNQHdRZC9670N0N0N0N0BowUohlH9ObejQYGZD
--MIMEBOU 960DD4BB3066B1FF153BC3151E7776B65947BA8DD00425E
内容-处置:表单-数据;名称="源"
内容类型:文本/纯文本;字符集=US-ASCII
内容-传输-编码: 8bit
/9j/4AAQSkZJRgABAgEAAAAAAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8KCwkMEQ8SEhEPERATFhwXExQaFRARGCEYGhwdHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCABvAG8DASIAAhEMIMEBoundary_960dd4bb3066b1fff153bc3151e7776b65947ba8dd00425e
0
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse" name="postPhoto"
transports="https,http" statistics="disable" trace="disable"
startOnLoad="true">
<target>
<inSequence>
<property name="accessToken" expression="//accessToken/text()" />
<property name="source" expression="//source/text()" />
<conn.init>
<accessToken>{$ctx:accessToken}</accessToken>
</conn.init>
<conn.postPhotoToAlbum>
<source>{$ctx:source}</source>
</conn.postPhotoToAlbum>
<respond></respond>
</inSequence>
<outSequence>
<log></log>
<send></send>
</outSequence>
</target>
</proxy>
模板 ==========================================================================
<parameter name="source" description="The source" />
<sequence>
<property name="enableMTOM" value="true" scope="axis2" />
<header name="Content-Type" value="multipart/form-data" scope="transport" action="add" />
<property name="preserveProcessedHeaders" value="true" scope="default"/>
<property name="uri.var.source" expression="$func:source" />
<payloadFactory media-type="xml">
<format>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header></soapenv:Header>
<soapenv:Body>
<root>
<access_token>$1</access_token>
<source>$2</source>
</root>
</soapenv:Body>
</soapenv:Envelope>
</format>
<args>
<arg expression="get-property('uri.var.accessToken')" />
<arg expression="get-property('uri.var.source')" />
</args>
</payloadFactory>
<call>
<endpoint>
<http method="post" uri-template="http://localhost:8888/photos" />
</endpoint>
</call>
</sequence>
<html>
<head><title>multipart/form-data - Client</title></head>
<body>
<form action="http:/localhost:7777/services/postPhotoToAlbumHttpSoap11Endpoint" method="POST" enctype="multipart/form-data">
url: <input type="text" name="accessToken" value=""><br/>
Profile pic :
<input type="file" name="source" size="40" multiple>
</p>
<input type="submit" value="Submit">
</form>
</body>
</html>
=========================================== 似乎在离开ESB时缺少边界...
内容类型:多部分/表单数据;
请根据轴到继电器配置查找输出行为
ESB的输入
POST /services/postPhotoToAlbumHttpSoap11EndpointHTTP/1.1
接受编码:gzip,deflate
内容类型:text/xml;字符集=UTF-8
SOAPAction:“urn:调解”
内容-长度: 488
主机:localhost:8280
连接:保持活力
用户代理:Apache-HttpClient/4.1.1(java 1.5)
X-For:127.0.0.1
<accessToken>CAACEdEose0cBAMotx64LhZBfX7VXAgdt1zsHJCnwJRewdi55clZBUIb6FdRdBKoU4INqXPI5NekgGkPEf5FwIk3ASIZBqmJQPkomlOZAxvj2tusLPl57tUk1RZBGvNq8iQmWKuoW1KsUerxhI4vA1Nol5DvQj4oVLqVO6hwTaC9rArNSWIbr99DZApGxIA5YGxFGi8E0JotgZDZD</accessToken>
<source></source>
来自ESB BinaryRelayBuilder的输出
POST/10150897830516344/photos HTTP/1.1
接受编码:gzip,deflate
X-For:127.0.0.1
内容类型:多部分/表单数据
SOAPAction:“urn:调解”
传输-编码:分块
主持人:a.b.com:443
连接:保持活力
用户代理:Synapse PT HttpComponents NIO
X-For:127.0.0.1127.0.0.1
201
CAACEDEOSE0CBAMOTX64LHZBFX7VXAGDT1ZSHJCNWJREWDI55CLZBUIB6FDRDBKOU4INQXPI5NEKGKPEF5FWIK3ASIQBQMJQKKKOMLOZAXVJ2TUSLPL57TUK1RZBGVNQ8IQMWKUKUW15DVQJ4OVO6HWTAC9RARSWIBR99DZAPGXIA5YGGGI8E0GZDZD
0
二进制中继生成器
class="org.wso2.carbon.relay."/>
class="org.apache.axis2.transport.http."/>
从ESB
--MIMEBoundary_4005c93d90f5f09d8bd30c0691e5b1ddf2192b5c862bdf91
内容-处置:表单-数据;名称="access_token"
内容类型:文本/纯文本;字符集=US-ASCII
内容-传输-编码: 8bit
CAACEDEOSE0CBAMOTX64LHZBFX7VXAGDT1ZSHJCNWJREWDI55CLZBUIB6FDRDBKOU4INQXPI5NEKGKPEF5FWIK3ASIQBQMJQKKKOMLOZAXVJ2TUSLPL57TUK1RZBGVNQ8IQMWKUKUW15DVQJ4OVO6HWTAC9RARSWIBR99DZAPGXIA5YGGGI8E0GZDZD
--MIMEBoundary_4005c93d90f5f09d8bd30c0691e5b1ddf2192b5c862bdf91
内容-处置:表单-数据;名称="源"
内容类型:文本/纯文本;字符集=US-ASCII
内容-传输-编码: 8bit
--MIMEBoundary_4005c93d90f5f09d8bd30c0691e5b1ddf2192b5c862bdf91--
MultipartFormDataBuilder
POST/10150897830516344/photos HTTP/1.1
接受编码:gzip,deflate
X-For:127.0.0.1
内容类型:多部分/表单数据
SOAPAction:“urn:调解”
传输-编码:分块
主持人:a.b.com:443
连接:保持活力
用户代理:Synapse PT HttpComponents NIO
X-For:127.0.0.1127.0.0.1
201
CAACEDEOSE0CBAMOTX64LHZBFX7VXAGDT1ZSHJCNWJREWDI55CLZBUIB6FDRDBKOU4INQXPI5NEKGKPEF5FWIK3ASIQBQMJQKKKOMLOZAXVJ2TUSLPL57TUK1RZBGVNQ8IQMWKUKUW15DVQJ4OVO6HWTAC9RARSWIBR99DZAPGXIA5YGGGI8E0GZDZD
0
MultipartFormDataBuilder
POST/10150897830516344/photos HTTP/1.1
接受编码:gzip,deflate
X-For:127.0.0.1
内容类型:多部分/表单数据
SOAPAction:urn:mediate
传输-编码:分块
主持人:a.b.com:443
连接:保持活力
用户代理:Synapse PT HttpComponents NIO
X-For:127.0.0.1127.0.0.1
29c
--MimeBoundary588B3DB44CE49DD52107589EEA5FDCDC3D9A943EEADCC5A
内容-处置:表单-数据;名称="access_token"
内容类型:文本/纯文本;字符集=US-ASCII
内容-传输-编码: 8bit
CAACEDEOSE0CBAMOTX64LHZBFX7VXAGDT1ZSHJCNWJREWDI55CLZBUIB6FDRDBKOU4INQXPI5NEKGKPEF5FWIK3ASIQBQMJQKKKOMLOZAXVJ2TUSLPL57TUK1RZBGVNQ8IQMWKUKUW15DVQJ4OVO6HWTAC9RARSWIBR99DZAPGXIA5YGGGI8E0GZDZD
--MimeBoundary588B3DB44CE49DD52107589EEA5FDCDC3D9A943EEADCC5A
内容-处置:表单-数据;名称="源"
内容类型:文本/纯文本;字符集=US-ASCII
内容-传输-编码: 8bit
--MimeBoundary588B3DB44CE49DD52107589EEA5FDCDC3D9A943EEADCC5A--
0
问题是WSO2-ESB当前版本(4.9.0)不支持多部分/表单数据处理。你不能调解这些。您只能使用直通代理。它正在工作
问题内容: 我想在JavaScript中使用XMLHttpRequest来发布包含文件类型输入元素的表单,以便避免页面刷新并返回有用的XML。 我可以使用JavaScript将表单上的目标属性设置为MSIE的iframe或Mozilla的对象,而无需刷新页面即可提交表单,但这有两个问题。较小的问题是目标与W3C不兼容(这就是为什么我在JavaScript中而不是在XHTML中设置目标)。主要问题是
问题内容: HTML表单是什么意思,什么时候应该使用它? 问题答案: 发出POST请求时,必须以某种方式对构成请求主体的数据进行编码。 HTML表单提供了三种编码方法。 (默认) 正在进行添加的工作,但已被放弃。 (使用HTML表单提交以外的其他方式生成的HTTP请求也可以使用其他编码。JSON是用于Web服务的常见格式,有些仍然使用SOAP。) 格式的细节对大多数开发人员而言并不重要。要点是:
我必须使用REST API将文件和信息上传到服务器。该API使用多部分形式,但我似乎无法正确使用它。 null 我尝试了几种方法,比如下面的代码,但是我不断从服务器得到错误的请求。
问题内容: 我正在尝试使用伪装完成多部分文件上传,但似乎在任何地方都找不到很好的示例。我本质上希望HTTP请求类似于以下内容: 甚至… 我是否需要手动构建请求主体,包括生成多部分边界?考虑到此客户端可以执行的其他所有操作,这似乎有点过头了。 问题答案: 不,你没有。您只需要定义一种代理接口方法,将content-type指定为:multipart / form- data和其他信息,例如远程API
我正在尝试使用curl向REST服务发布一个xml文件(utf-16编码)。REST服务需要“multipart/form-data”内容类型。 Curl脚本:Curl-k-i-h“content-type=multipart/form-data”-f“filename=@file.xml;type=text/xml”-x POST-u: 然而,我在运行脚本时得到500个内部服务器错误。 响应:<
我试图使用feign完成一个多部分文件上传,但是我似乎在任何地方都找不到一个好的例子。我基本上希望HTTP请求的结果类似如下: 或者甚至… 我需要手动构建请求体吗,包括生成多部分边界?考虑到这个客户端可以做的所有其他事情,这似乎有点过分。