当前位置: 首页 > 知识库问答 >
问题:

使用多部分/表单数据调用REST API

齐成双
2023-03-14

如何使用ajax或XMLHttpRequest从javascript调用RESTAPI,以使用内容类型:multipart/form data上载文件。

文件内容是二进制格式的,但我调用的API具有以下请求格式:Authorization:Bearer

我使用以下代码段上传文件内容:

var xmlHttp = new XMLHttpRequest();
xmlHttp.open("POST", requestUrl);
xmlHttp.setRequestHeader("Authorization", "Bearer " + token);
xmlHttp.setRequestHeader("Content-Type", "multipart/form-data");                                             
xmlHttp.addEventListener("readystatechange", function () {
            if (this.readyState === 4) {
                console.log(this.responseText);                    
            }                
        }); 
       xmlHttp.send(formData);

其中formData是二进制格式的文件内容。请建议这是正确的方法还是应该以不同的方式处理。我使用的文件类型是IFC文件。我收到的错误是不支持媒体类型

谢谢

共有1个答案

秦光启
2023-03-14

对于将文件上传到欧特克Forge(A360),以下curl命令在类Unix终端中工作:

curl -v 'https://developer.api.autodesk.com/oss/v2/buckets/$bucket_name/objects/$filename.ifc' \
 -X 'PUT' \
 -H 'Authorization: Bearer $token' \
 -H 'Content-Type: text/plain; charset=UTF-8' \
 -T '$filename.ifc'

因为IFC文件是文本(ASCII)文件,而不是二进制文件。

在您的情况下,使用相同的内容类型可能会起到同样的作用。

希望能有帮助。

 类似资料:
  • 我遇到了一个问题,我无法在我的资源中获取我的表单,变量总是为空 我的资源: 表单模型 我的取货请求: 和我的HttpClient: 为了确保我正在使用代理进行测试并且请求实际上是好的:变量文件名和徽标始终为空。 这是我的绒球.xml: 我不知道问题出在哪里。 我已经看过了多部分的官方resteasy文档,看不出问题在哪里。我已经用MultipartFormDataInput测试过,所有部分都是空的

  • 我在Lumen(应用程序A)中创建了一个简单的API,它: 接收PSR-7请求接口 替换对应用程序B的请求的URI 并通过古斯发送请求。 上面的代码将数据传递给应用程序B以获取查询参数、x-www-form-urlencoded或JSON内容类型。但是,它无法传递多部分/form-data。(该文件在应用程序A中可用:

  • 所以这个HTML代码以正确的格式提交数据给我。 谢了!

  • 我需要实现一个RESTendpoint,它接收多部分/表单数据 我使用 -Spring Boot -Kotlin -Spring MVC 当我收到一个请求时,就会出现一个错误: 内容类型'multipart/form-data';boundary=----------------------------------------------------------------------------

  • 问题内容: 我有一个带有方法的控制器方法,该方法接收multipart / form-data: 我想使用进行测试。不幸的是创建了一个具有方法的实例: 编辑: 当然,我 不能 创建自己的实现,例如 因为具有包本地构造函数。 但是我想知道是否还有其他更方便的 方法?可以这样做吗,可能是我错过了一些现有的类或方法吗? 问题答案: 是的,有一种方法,而且也很简单! 我自己也遇到了同样的问题。尽管我不满意

  • 当我点击这个api时,我得到错误“415:Unsupported Media type”,这意味着不受支持的头。我想将文件从ARC加载到控制器。 我在pom.xml文件中添加了一些maven依赖项。 我的pom文件: