C# 伪造数据和查看API已损坏,不再上载大文件

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()

我使用View and Data API查看autodesk内容已有一段时间了。最近,在authenticaton版本更改后,我似乎无法上传我的伊丽莎白女王医院模型


我是否需要迁移到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)要上载的文件太大,您需要使用可恢复上载(请参阅)。但是如果这(或以上建议)没有帮助,我们需要查看一些示例代码和一个文件来重现问题。