C# 使用C语言下载Autodesk Forge视图#
我正试图在C#应用程序中下载Forge viewables,但下载svf文件时遇到问题。下面的代码返回“请求的资源不存在”。如果我在node.js提取器示例中运行相同的urn,它就可以正常工作。我不太熟悉在C#中使用RESTAPI,可能缺少一个头或参数。我尝试了很多组合,但都没有成功。希望有人能给我指出正确的方向C# 使用C语言下载Autodesk Forge视图#,c#,autodesk-forge,autodesk-model-derivative,C#,Autodesk Forge,Autodesk Model Derivative,我正试图在C#应用程序中下载Forge viewables,但下载svf文件时遇到问题。下面的代码返回“请求的资源不存在”。如果我在node.js提取器示例中运行相同的urn,它就可以正常工作。我不太熟悉在C#中使用RESTAPI,可能缺少一个头或参数。我尝试了很多组合,但都没有成功。希望有人能给我指出正确的方向 var urn = "urn:adsk.viewing:fs.file:<xxxxxURNxxxxxx>/output/0/0.svf"; var client = new
var urn = "urn:adsk.viewing:fs.file:<xxxxxURNxxxxxx>/output/0/0.svf";
var client = new RestClient("https://developer.api.autodesk.com");
var request = RestRequest("/derivativeservice/v2/derivatives/{" + urn + "}", Method.GET);
request.AddParameter("Authorization",string.Format("Bearer " + Configuration.Default.AccessToken),ParameterType.HttpHeader);
var result = client.Execute(request);
var urn=“urn:adsk.view:fs.file:/output/0/0.svf”;
var client=新的RestClient(“https://developer.api.autodesk.com");
var request=RestRequest(“/derivativeservice/v2/derivatives/{“+urn+”}”,Method.GET);
request.AddParameter(“Authorization”,string.Format(“Bearer”+Configuration.Default.AccessToken),ParameterType.HttpHeader);
var result=client.Execute(请求);
我认为您只需要从URL中删除大括号,因此使用RestRequest(“/developerativeservice/v2/developerates/”+urn,Method.GET)代码>调用RESTAPI没有什么特别之处。REST调用只是HTTP调用。如果你得到一个404,这意味着你使用了错误的URL。大括号不是有效的URL字符。您是否发布了带有占位符的字符串,但忘记实际删除占位符?是否尝试粘贴使用字符串插值的ULR?在这种情况下,您应该使用$”/derivativeservice/v2/derivatives/{urn}“
,或者使用String.Format,或者使用插值和$”/derivativeservice/v2/derivatives/{urn}”
谢谢您的建议。我尝试了很多格式组合,包括上面提到的那些,但没有成功。奇怪的是,使用node.js,我可以下载这个文件,并且使用完全相同的urn。在我的C#项目中,我可以使用如下大括号下载清单:RestRequest(“/developerativeservice/v2/manifest/{“+urn64+”),Method.GET)代码>也许你可以使用一个工具来查看在C#代码和Node.js代码的情况下到底发送了什么(数据、标题、URL)。如果一个在工作,而另一个不工作,那一定会有区别。谢谢亚当。费德勒帮我找到了解决办法。在调用Restrequest之前,我必须在urn上运行HttpUtility.UrlEncode。