【问题标题】:Getting a bad request 400 when trying to upload zipped wkt file to here-maps rest api尝试将压缩的 wkt 文件上传到 here-maps rest api 时收到错误的请求 400
【发布时间】:2020-05-15 13:21:18
【问题描述】:

在为地理围栏上传新图层时,fleet.ls.hereapi.com 出现问题。

const myId = 'MYLAYER'; // just a id to check
zip.file('data.wkt', `NAME\tWKT\n${myId}\t${wkt}`);
const content = await zip.generateAsync({ type: 'nodebuffer' });
const formData = new FormData();
formData.append('zipfile', content);
await axios.post(config.HERE_MAPS_UPLOAD_ENDPOINT, formData, {
  headers: {
    'content-type': 'multipart/form-data',
  },
  params: {
    apiKey: config.HERE_MAPS_REST_API_KEY,
    layer_id: myId,
  },
});

我们收到了一个没有消息的错误请求,并且不知道问题出在哪里。相同的实现在前端工作(使用“blob”作为 zip 类型)。是否有一个参数可以从 api 获得更好的错误消息? 我们从本教程中获得了如何实现它的说明:https://www.youtube.com/watch?v=Ayw9GcS1V-8,正如我所提到的,它在前端工作得很好。如果我在节点中编写一个文件并通过 curl 上传它,它也可以工作。提前感谢您的帮助!

编辑:我从 API 收到以下问题:'Multipart 应该只包含一个部分,但包含 0'

【问题讨论】:

    标签: node.js multipartform-data form-data jszip here-maps-rest


    【解决方案1】:

    我修好了! 问题是api需要表单数据的文件名。该文件名可以作为第三个参数提供,如here 所述。

    所以我基本上将formData.append('zipfile', content); 更改为formData.append('zipfile', content, zipfile.zip); 并且成功了。

    希望这对未来的人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-09
      • 2021-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      相关资源
      最近更新 更多