代码之家  ›  专栏  ›  技术社区  ›  v.slobodzian

Autodesk Forge API。如何获取项目的特定版本?

  •  2
  • v.slobodzian  · 技术社区  · 7 年前

    我要从Autodesk Forge获取该项目的特定版本。我用这个 instruction 去做吧。有一个请求模板:

    GET projects/:project_id/versions/:version_id/item
    

    所以我的请求看起来很相似(为了简洁,我删掉了一个部分):

    https://developer.api.autodesk.com/data/v1/projects/a.cGV ... TU2/versions/urn:adsk.wipprod:fs.file:vf.lTvo5GGBRzidiQ8Kredbaw?version=1/item
    

    但请求返回 错误400 (请求错误)。

    当我以同样的方式获取项目时(使用 template 当然)一切正常。

    我应该使用 this 模板或其他? 我做错了什么?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Eason Kang    7 年前

    这个 version_id 应转义为URL安全的形式,因为存在一些保留的和不安全的关键字(即。 : , . , ? = )在此参数中。他们将使您对Forge服务的请求无效。( Ref )

    例如,您的version\u id为 urn:adsk.wipprod:fs.file:vf.d34fdsg3g?version=2 ,则必须将其转换为:

    urn%3Aadsk.wipprod%3Afs.file%3Avf.b909RzMKR4mhc3O7UBY_8g%3Fversion%3D2 .


    在JavaScript中 encodeURIComponent() ( Ref )函数可以帮助您进行此转换。以下是一个示例:

    encodeURIComponent('urn:adsk.wipprod:fs.file:vf.d34fdsg3g?version=2')

    如果代码是用C#编写的,则可以调用 Uri.EscapeDataString() ( Ref )归档相同的目标。

    推荐文章