Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C语言下载Autodesk Forge视图#_C#_Autodesk Forge_Autodesk Model Derivative - Fatal编程技术网

C# 使用C语言下载Autodesk Forge视图#

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

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

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。