C# 伪造数据和查看API已损坏,不再上载大文件
我使用View and Data API查看autodesk内容已有一段时间了。最近,在authenticaton版本更改后,我似乎无法上传我的伊丽莎白女王医院模型C# 伪造数据和查看API已损坏,不再上载大文件,c#,rest,authentication,autodesk,autodesk-forge,C#,Rest,Authentication,Autodesk,Autodesk Forge,我使用View and Data API查看autodesk内容已有一段时间了。最近,在authenticaton版本更改后,我似乎无法上传我的伊丽莎白女王医院模型 我是否需要迁移到v2才能继续像以前一样工作,因为我现在只能在不断尝试上载后管理一个7.5兆字节的文件?您要求提供代码,因此,在这里,我将此代码升级到版本v2,并且我不再获得令牌。我想这会阻止我继续使用不推荐的版本。 #注意下面的版本是v1,这是有效的 public static string Authenticate()
我是否需要迁移到v2才能继续像以前一样工作,因为我现在只能在不断尝试上载后管理一个7.5兆字节的文件?您要求提供代码,因此,在这里,我将此代码升级到版本v2,并且我不再获得令牌。我想这会阻止我继续使用不推荐的版本。 #注意下面的版本是v1,这是有效的
public static string Authenticate()
{
// (1) Build request
var client = new RestClient();
client.BaseUrl = new System.Uri(baseApiUrl);
// Set resource/end point
var request = new RestRequest();
request.Resource = "authentication/v1/authenticate";
request.Method = Method.POST;
// Set required parameters
request.AddParameter("client_id", consumerKey);
request.AddParameter("client_secret", consumerSecret);
request.AddParameter("grant_type", "client_credentials");
request.AddParameter("scope", "data:read data:create data:write bucket:read bucket:create");
// (2) Execute request and get response
IRestResponse response = client.Execute(request);
// Save response. This is to see the response for our learning.
m_lastResponse = response;
// Get the access token.
string accessToken = "";
if (response.StatusCode == HttpStatusCode.OK)
{
JsonDeserializer deserial = new JsonDeserializer();
Share_Model_OSSClasses loginResponse = deserial.Deserialize<Share_Model_OSSClasses>(response);
accessToken = loginResponse.access_token;
}
return accessToken;
}
public class Share_Model_OSSClasses
{
public string token_type { get; set; }
public string expires_in { get; set; } // expiry time in seconds. (30 min)
public string access_token { get; set; }
}
公共静态字符串身份验证()
{
//(1)构建请求
var client=new RestClient();
client.BaseUrl=newsystem.Uri(baseapirl);
//设置资源/终点
var request=new RestRequest();
request.Resource=“authentication/v1/authenticate”;
request.Method=Method.POST;
//设置所需参数
AddParameter(“客户id”,consumerKey);
AddParameter(“客户机密”,ConsumerCret);
AddParameter(“授权类型”、“客户端凭据”);
request.AddParameter(“作用域”,“数据:读取数据:创建数据:写入桶:读取桶:创建”);
//(2)执行请求并获取响应
IRestResponse response=client.Execute(请求);
//保存响应。这是为了查看我们学习的响应。
m_lastResponse=响应;
//获取访问令牌。
字符串accessToken=“”;
if(response.StatusCode==HttpStatusCode.OK)
{
JsonDeserializer deserial=新的JsonDeserializer();
Share_Model_OSSClasses loginResponse=反序列化。反序列化(响应);
accessToken=loginResponse.access\u令牌;
}
返回accessToken;
}
公共类共享模式共享类
{
公共字符串标记\u类型{get;set;}
公共字符串在{get;set;}中过期。\u//过期时间(秒)(30分钟)
公共字符串访问\u令牌{get;set;}
}
您要求提供代码,所以在这里,我将此代码升级为版本v2,并且我不再获得令牌。我想这会阻止我继续使用不推荐的版本。
#注意下面的版本是v1,这是有效的
public static string Authenticate()
{
// (1) Build request
var client = new RestClient();
client.BaseUrl = new System.Uri(baseApiUrl);
// Set resource/end point
var request = new RestRequest();
request.Resource = "authentication/v1/authenticate";
request.Method = Method.POST;
// Set required parameters
request.AddParameter("client_id", consumerKey);
request.AddParameter("client_secret", consumerSecret);
request.AddParameter("grant_type", "client_credentials");
request.AddParameter("scope", "data:read data:create data:write bucket:read bucket:create");
// (2) Execute request and get response
IRestResponse response = client.Execute(request);
// Save response. This is to see the response for our learning.
m_lastResponse = response;
// Get the access token.
string accessToken = "";
if (response.StatusCode == HttpStatusCode.OK)
{
JsonDeserializer deserial = new JsonDeserializer();
Share_Model_OSSClasses loginResponse = deserial.Deserialize<Share_Model_OSSClasses>(response);
accessToken = loginResponse.access_token;
}
return accessToken;
}
public class Share_Model_OSSClasses
{
public string token_type { get; set; }
public string expires_in { get; set; } // expiry time in seconds. (30 min)
public string access_token { get; set; }
}
公共静态字符串身份验证()
{
//(1)构建请求
var client=new RestClient();
client.BaseUrl=newsystem.Uri(baseapirl);
//设置资源/终点
var request=new RestRequest();
request.Resource=“authentication/v1/authenticate”;
request.Method=Method.POST;
//设置所需参数
AddParameter(“客户id”,consumerKey);
AddParameter(“客户机密”,ConsumerCret);
AddParameter(“授权类型”、“客户端凭据”);
request.AddParameter(“作用域”,“数据:读取数据:创建数据:写入桶:读取桶:创建”);
//(2)执行请求并获取响应
IRestResponse response=client.Execute(请求);
//保存响应。这是为了查看我们学习的响应。
m_lastResponse=响应;
//获取访问令牌。
字符串accessToken=“”;
if(response.StatusCode==HttpStatusCode.OK)
{
JsonDeserializer deserial=新的JsonDeserializer();
Share_Model_OSSClasses loginResponse=反序列化。反序列化(响应);
accessToken=loginResponse.access\u令牌;
}
返回accessToken;
}
公共类共享模式共享类
{
公共字符串标记\u类型{get;set;}
公共字符串在{get;set;}中过期。\u//过期时间(秒)(30分钟)
公共字符串访问\u令牌{get;set;}
}
您肯定需要考虑迁移到v2,但这不会妨碍您。你试过使用一个新的和新鲜的桶吗?嗨,是的,我试过每个项目一个新的桶,结果似乎是一样的。欢迎使用。请看一看。您可能还需要检查、和以及如何创建。张贴您尝试过的代码和收到的错误。尽可能具体,因为这将导致更好的答案。我认为最近有人遇到了同样的问题,他们开始收到错误401(意思是“未经授权”),他们通过专门设置bucket AuthId解决了这个问题。常见的原因是(1)无法正确确定accesstoken的范围(请参阅)或(2)要上载的文件太大,您需要使用可恢复上载(请参阅)。但是,如果这(或以上建议)没有帮助,我们需要查看一些示例代码和文件来重现问题。您肯定需要考虑迁移到v2,但现在这不应该阻止您。你试过使用一个新的和新鲜的桶吗?嗨,是的,我试过每个项目一个新的桶,结果似乎是一样的。欢迎使用。请看一看。您可能还需要检查、和以及如何创建。张贴您尝试过的代码和收到的错误。尽可能具体,因为这将导致更好的答案。我认为最近有人遇到了同样的问题,他们开始收到错误401(意思是“未经授权”),他们通过专门设置bucket AuthId解决了这个问题。常见的原因是(1)无法正确确定accesstoken的范围(请参阅)或(2)要上载的文件太大,您需要使用可恢复上载(请参阅)。但是如果这(或以上建议)没有帮助,我们需要查看一些示例代码和一个文件来重现问题。