2017-05-25 60 views
0

我试图在C#应用程序中下载Forge可见视图,但我在下载svf文件时遇到问题。以下代码返回“请求的资源不存在”。如果我在node.js提取器示例中运行相同的urn,它工作正常。我不熟悉在C#中使用REST API,可能缺少头文件或参数。我尝试过很多组合,但没有成功。希望有人能指出我正确的方向。使用C#下载Autodesk Forge可见视图使用C#

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); 
+0

没有什么特别之处调用REST的API。 REST调用只是HTTP调用。如果你得到了404这意味着你使用了错误的URL。大括号不是有效的URL字符。你是否用占位符发布了一些字符串,但忘记实际删除占位符? –

+0

您是否尝试粘贴使用字符串插值的ULR?您应该在这种情况下使用'$“/ derivativeservice/v2/derivatives/{urn}”' –

回答

0

我认为你需要从URL中移除大括号,所以用RestRequest("/derivativeservice/v2/derivatives/" + urn, Method.GET);

+0

或者使用String.Format,或者使用'$“/ derivativeservice/v2/derivatives/{urn}插入'' –

+0

你的建议。我尝试了很多格式组合,包括上面提到的组合,但没有成功。奇怪的是,使用node.js我能够下载这个文件与完全相同的urn。在我的C#项目中,我可以使用如下的花括号来下载清单: 'RestRequest(“/ derivativeservice/v2/manifest/{”+ urn64 +“}”,Method.GET);' – FrodeTo

+0

也许你可以使用像http://www.telerik.com/fiddler这样的工具来查看C#代码和Node.js代码的情况究竟发送了什么(数据,头文件,URL)。如果一个人在工作,但不是另一个,那么一定有区别。 –