2016-11-12 38 views
0

我想使用autodesk模型派生API在僞造查看器中顯示DWG文件。 在
當請求模型衍生autodesk api時,將DWG轉換爲obj格式

result = _client.Execute(objReq); 
      if (result.StatusCode == System.Net.HttpStatusCode.OK || result.StatusCode==System.Net.HttpStatusCode.Created) 
      { 
      } 


我得到的錯誤請求。請幫助我

public virtual ActionResult Index() 
    { 
     SetupViewer(); 
     if (_bucketFound) 
     { 
      //upload file 
      RestRequest uploadReq = new RestRequest(); 
      uploadReq.Resource = "oss/v2/buckets/"+_bucketName+"/objects/"+_filepath; 

      uploadReq.Method = Method.PUT; 
      uploadReq.AddHeader("Content-Type", _fileContentType); 
      uploadReq.AddParameter("Authorization", "Bearer " + _accessToken, ParameterType.HttpHeader); 

      var result= _client.Execute(uploadReq); 
      if (result.StatusCode == System.Net.HttpStatusCode.OK) 
      { 
       String responseString = result.Content; 
       int len = responseString.Length; 
       int objectKeyIndex = responseString.IndexOf("\"objectKey\" : \""); 
       int index = responseString.IndexOf("urn:"); 
       responseString = responseString.Substring(index, objectKeyIndex - index-5).Replace("urn:", "").Trim(); 

       _fileUrn = "urn:"+responseString; 
       //convert urn to base64 
       string base64Urn = Base64Convertor.Base64Encode(_fileUrn); 
       // Remove ending '=' signs 
       // Use _ instead of/
       // Use - insteaqd of + 
       base64Urn = base64Urn.Replace("=", ""); 
       //translate to SVF format 
       //RestRequest svfReq = new RestRequest(); 
       //svfReq.Resource = "modelderivative/v2/designdata/job"; 

       //svfReq.Method = Method.POST; 
       //svfReq.AddParameter("Authorization", "Bearer " + _accessToken, ParameterType.HttpHeader); 
       //svfReq.AddParameter("Content-Type", "application/json;charset=utf-8", ParameterType.HttpHeader); 
       //string body = "{\"input\":{\"urn\":\"" + base64Urn + "\",\"compressedUrn\":true,\"rootFilename\":\""+_filepath+ "\"},\"output\":{\"formats\":[{\"type\":\"svf\",\"views\":[\"2d\"]}]}}"; 
       //svfReq.AddParameter("application/json", body, ParameterType.RequestBody); 

       // translate to OBJ format 
       RestRequest objReq = new RestRequest(); 
       objReq.Resource = "modelderivative/v2/designdata/job"; 

       objReq.Method = Method.POST; 
       objReq.AddParameter("Authorization", "Bearer " + _accessToken, ParameterType.HttpHeader); 
       objReq.AddParameter("Content-Type", "application/json", ParameterType.HttpHeader); 
       string body = "{\"input\":{\"urn\":\"" + base64Urn + "\"},\"output\":{\"formats\":[{\"type\":\"obj\"}]}}"; 

       result = _client.Execute(objReq); 
       if (result.StatusCode == System.Net.HttpStatusCode.OK || result.StatusCode==System.Net.HttpStatusCode.Created) 
       { 

        //check the transition complete 
        RestRequest checkTransitionCompleteGetReq = new RestRequest(); 
        checkTransitionCompleteGetReq.Resource = "modelderivative/v2/designdata/"+base64Urn+"/manifest"; 
        checkTransitionCompleteGetReq.Method = Method.GET; 
        checkTransitionCompleteGetReq.AddParameter("Authorization", "Bearer " + _accessToken, ParameterType.HttpHeader); 

       var result2 = _client.Execute(checkTransitionCompleteGetReq); 
        if (result2.StatusCode == System.Net.HttpStatusCode.OK) 
        { 

         ViewBag.BucketFound = result.Content; 
        } 
       } 


      } 
     } 
     return View(); 
    } 

    void SetupViewer() 
    { 
     // Authentication 
     bool authenticationDone = false; 

     RestRequest authReq = new RestRequest(); 
     authReq.Resource = "authentication/v1/authenticate"; 
     authReq.Method = Method.POST; 
     authReq.AddHeader("Content-Type", "application/x-www-form-urlencoded"); 
     authReq.AddParameter("client_id", ConfigurationManager.AppSettings["ClientId"]); 
     authReq.AddParameter("client_secret", ConfigurationManager.AppSettings["ClientSecret"]); 
     authReq.AddParameter("grant_type", "client_credentials"); 
     authReq.AddParameter("scope", "bucket:create bucket:read data:write data:read"); 

     IRestResponse result = _client.Execute(authReq); 
     if (result.StatusCode == System.Net.HttpStatusCode.OK) 
     { 
      String responseString = result.Content; 
      int len = responseString.Length; 
      int index = responseString.IndexOf("\"access_token\":\"") + "\"access_token\":\"".Length; 
      responseString = responseString.Substring(index, len - index - 1); 
      int index2 = responseString.IndexOf("\""); 
      _accessToken = responseString.Substring(0, index2); 

      //Set the token. 
      RestRequest setTokenReq = new RestRequest(); 
      setTokenReq.Resource = "utility/v1/settoken"; 
      setTokenReq.Method = Method.POST; 
      setTokenReq.AddHeader("Content-Type", "application/x-www-form-urlencoded"); 
      setTokenReq.AddParameter("access-token", _accessToken); 

      IRestResponse resp = _client.Execute(setTokenReq); 
      if (resp.StatusCode == System.Net.HttpStatusCode.OK) 
      { 
       authenticationDone = true; 
      } 
     } 

     if (!authenticationDone) 
     { 
      ViewData["Message"] = "View and Data client authentication failed !"; 
      _accessToken = String.Empty; 
      return; 
     } 

     RestRequest bucketReq = new RestRequest(); 
     bucketReq.Resource = "oss/v2/buckets"; 
     bucketReq.Method = Method.POST; 
     bucketReq.AddParameter("Authorization", "Bearer " + _accessToken, ParameterType.HttpHeader); 
     bucketReq.AddParameter("Content-Type", "application/json", ParameterType.HttpHeader); 

     //bucketname is the name of the bucket. 
     string body = "{\"bucketKey\":\"" + _bucketName + "\",\"policyKey\":\"transient\"}"; 
     bucketReq.AddParameter("application/json", body, ParameterType.RequestBody); 

     result = _client.Execute(bucketReq); 

     if (result.StatusCode == System.Net.HttpStatusCode.Conflict || 
      result.StatusCode == System.Net.HttpStatusCode.OK) 
     { 
      // _bucketFound = true; 
      //Check bucket 
      RestRequest bucketGetReq = new RestRequest(); 
      bucketGetReq.Resource = "oss/v2/buckets"; 
      bucketGetReq.Method = Method.GET; 
      bucketGetReq.AddParameter("Authorization", "Bearer " + _accessToken, ParameterType.HttpHeader); 
      bucketGetReq.AddParameter("Content-Type", "application/json", ParameterType.HttpHeader); 
      result = _client.Execute(bucketGetReq); 
      if (result.StatusCode == System.Net.HttpStatusCode.OK) 
      { 
       _bucketFound = true; 
       ViewBag.BucketFound = "Found"; 

      } 
      else 
       ViewBag.BucketFound = "NotFound"; 

     } 
     else 
     { 
      ViewData["Message"] = "View and Data bucket could not be accessed !"; 
      _bucketFound = false; 
      return; 
     } 
    } 

回答

0

你可以再試一次,在那段時間我們有一些停機時間,但一切都應該爲你備份和運行。如果不行,我會看看你的要求。

乾杯,

+0

你好。聽你的回覆。實際上我想從鍛造觀察者計算面積和數量測量和估算。我可以使用autodesk apis來做到這一點嗎?如果是的話,請幫助我如何做到這一點 – user3166544

+0

嗨,原來的問題是關於在服務器上的停機時間,並獲得您的請求失敗的狀態。如果您需要另一個問題的幫助,您是否可以提交單獨的請求並更詳細地解釋您正在嘗試執行的操作。從我在上面的請求中讀到的內容,我不太明白你想要做什麼。 –

相關問題