Azure 逻辑应用程序 http post multipart/form-data 文件上传

2023-12-10

我正在尝试使用 Azure 中的 HTTP 逻辑应用程序调用 api

我可以通过邮递员使通话成功。查看我的邮递员配置

Post Man Configuration

我可以看到来自邮递员的 http 代码,如下所示,我使用它来使逻辑应用程序的格式类似于邮递员的格式。

POST /dcma/rest/initiateOcrClassifyExtract HTTP/1.1

Host: godemo.ephesoft.com

Authorization: Basic NDU=??????

Cache-Control: no-cache

Postman-Token: 3baf23e7-6b46-a5f4-094b-3df1879bbe21

Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="000001.pdf"; filename="000001.pdf"
Content-Type: application/pdf


------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="batchClassIdentifier"

BC590

------WebKitFormBoundary7MA4YWxkTrZu0gW--

下面是实际的逻辑应用 http 配置。

Logic App config

服务器上的日志显示以下错误

    2017-09-07 20:12:51,784 [ajp-apr-8009-exec-3] ERROR org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/dcma].[DispatcherServlet]- Servlet.service() for servlet [DispatcherServlet] in context with path [/dcma] threw exception [Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadException: Header section has more than 10240 bytes (maybe it is not properly terminated)] with root cause
org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Header section has more than 10240 bytes (maybe it is not properly terminated)
    at org.apache.commons.fileupload.MultipartStream.readHeaders(MultipartStream.java:541)
    at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:999)
    at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:965)
    at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:351)
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    at org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:158)
    at org.springframework.web.multipart.commons.CommonsMultipartResolver.resolveMultipart(CommonsMultipartResolver.java:142)
    at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1070)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:912)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at com.ephesoft.dcma.webapp.AuthenticationFilter.doFilter(AuthenticationFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at com.ephesoft.dcma.webapp.SessionTimeoutFilter.doFilter(SessionTimeoutFilter.java:43)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:230)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at com.ephesoft.dcma.webapp.HTTPHeaderFilter.doFilter(HTTPHeaderFilter.java:75)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)

对于 multipart/form-data 现在官方文档中有一个示例:

https://learn.microsoft.com/bs-latn-ba/azure/connectors/connectors-native-http#content-with-multipartform-data-type

"body": {
   "$content-type": "multipart/form-data",
   "$multipart": [
      {
         "body": "<output-from-trigger-or-previous-action>",
         "headers": {
            "Content-Disposition": "form-data; name=file; filename=<file-name>"
         }
      }
   ]
}

如果还有其他表单字段要发送,只需添加具有正确表单字段名称的类似对象即可。

Content-Disposition 标头将需要转义引号name and filename如果您没有使用上一步中的 TriggerBody,请使用此字段。

"Content-Disposition": "form-data; name=\"file\"; filename=\"<file-name>\""
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure 逻辑应用程序 http post multipart/form-data 文件上传 的相关文章

随机推荐

  • Java中如何将int[]转换为List

    我如何转换int into List
  • 状态变量在页面上显示之前不会存储 JSON 响应

    Context 我正在使用使用 Async Await 的 Axios 从 GET 请求中检索 JSON 响应 它存储在一个名为的状态变量中tutorDetails内useMemo钩 我正在访问 React JSX 中存储的状态变量retu
  • 通过忽略某些字符来比较两个字符串

    我想知道是否有一种简单的方法可以通过排除字符串中的某些字符来检查两个字符串是否匹配 请参见下面的示例 我可以轻松地编写这样的方法 通过编写正则表达式来查找 通配符 字符 并用常见字符替换它们 然后比较两个字符串str1和str2 我并不是在
  • Parrot VM 对最终用户有什么好处?

    这样做有什么好处鹦鹉虚拟机对于最终用户 软件开发人员 例如 如果我可以直接针对 Perl 或 Python 进行编程 为什么我还要在 Parrot 下为它们进行编程呢 基本上 VM 的典型优点 可移植性 运行时优化等 从主页 一旦程序被编译
  • 创建后台线程用于核心数据写入

    我正在尝试重新创建这篇 cocoanetics 文章中描述的三层核心数据系统 http www cocoanetics com 2012 07 multi context coredata 我遇到的问题是在其自己的后台线程上创建私有 MOC
  • php 无法解析符号链接

    php 似乎没有解析符号链接 我试图将符号链接的目标添加到 php 文件中的包含路径 但 php 似乎无法识别符号链接指向目录 因此无法找到我想要包含的文件 对于上下文 这里是相关目录详细信息 gt pwd var www siteroot
  • 如何在 Scala 中使用 Java 包 com.example...object

    如何引用名称中包含对象 例如 Scala 中的 com example object 的 Java 包 Scala 将对象视为保留字并抱怨 将保留字放在反引号内 如下所示 com example object
  • 、 的香草自定义元素中继器
  • 我目前正在尝试实现一个中继器WebComponent让公司可以轻松创建前端而不依赖于任何framework 由架构决定 这是我当前的代码 ul ul
  • Paging .net MVC - 无需从WebService下载所有记录

    我有以下问题 我想要进行良好的分页 但我不想将所有记录从 WebService 下载到我的应用程序 控制器代码 public ActionResult Vacations int page int pageNumber page 1 int
  • 如何取消隐藏被覆盖的函数?

    假设我有自己的函数 名为zeros在Matlab路径上 现在我想调用内置的zeros 我怎样才能做到这一点 Use the builtin功能 builtin function arg1 argN 在你的情况下 例如 builtin zer
  • 传单在地图上固定大小的圆圈

    我正在使用 leaflet js 创建一些标记和圆圈 我正在使用下面给出的代码来绘制圆圈 L circle lat lng 1000 color colorCode stroke false fillColor colorCode fill
  • 无法解析 Firebase 库 android

    我正在开发适用于 Android 的 firebase 同步项目时出现错误 错误 27 13 无法解析 com google firebase firebase auth 10 2 0错误 无法解析 com google firebase
  • SQLiteOpenHelper.getWritableDatabase() 的 nullPointerException,Android

    我正在尝试让 SQLite 数据库在 Android 上工作 在 MainActivity 中编写了一个小测试 其中包括在数据库一行的 3 列中输入值 之后 数据被读回并显示到屏幕上以验证其是否有效 但是我在 SQLiteOpenHelpe
  • 如何在名为 key for hibernate 的列名称中添加反引号

    我有一个 MySQL DB 表 我无法修改该表 但必须向其中插入值 它有一个名为key我需要插入其中 现在 我的 hbm xml 文件有
  • 在Android Studio中添加JsonPath导致非零退出值2错误

    当我添加JsonPath库到我的 Android Studio 1 4 项目时出现以下错误 Error Execution failed for task app dexDebug gt com android ide common pro
  • 垃圾邮件中的 JavaScript;它想做什么?

    我收到一封带有 htm 附件的垃圾邮件 我在 Linux 机器上的 gedit 中打开该文件并看到以下内容 它尝试运行的脚本会执行任何操作吗 它看起来无害 但却令人困惑 h1 Loadin h1
  • 如何将幻灯片从一个演示文稿复制到另一个演示文稿?

    我正在尝试从源演示文稿复制幻灯片并将其附加到目标演示文稿的末尾 我已经搜索过解决方案 但他们使用谷歌应用程序脚本 我正在寻找一个可以使用谷歌幻灯片或谷歌驱动器 REST API 的解决方案 到目前为止 我尝试的是获取源演示文稿幻灯片的每个元
  • Spotify 的重定向 URI 无效

    我正在尝试让 Spotify API 与 AngularJS 一起使用 我在授权阶段收到无效的重定向 URI 错误 https developer spotify com web api authorization guide 我已将red
  • 使用 JAVA 中的 Date 类处理时区更改

    我正在尝试打印当前系统日期和时间 如下所示 public class PrintDate public void getDate while true System out println new Date public static vo
  • Azure 逻辑应用程序 http post multipart/form-data 文件上传

    我正在尝试使用 Azure 中的 HTTP 逻辑应用程序调用 api 我可以通过邮递员使通话成功 查看我的邮递员配置 我可以看到来自邮递员的 http 代码 如下所示 我使用它来使逻辑应用程序的格式类似于邮递员的格式 POST dcma r