2014-03-12 80 views
0

我想嘗試上傳MP3文件到我的SoundCloud賬戶。我爲這份工作編寫了這些代碼。在上傳曲目的SoundCloud(422)處理的實體)

     WebClient client = new WebClient(); 
         string postData = "client_id=" + "xxxxx" 
             + "&client_secret=" + "xxx" 
             + "&grant_type=password&username=" + "xxx" //your username 
             + "&password=" + "xxx";//your password :) 
         string soundCloudTokenRes = "https://api.soundcloud.com/oauth2/token"; 
         string tokenInfo = client.UploadString(soundCloudTokenRes, postData); 
         tokenInfo = tokenInfo.Remove(0, tokenInfo.IndexOf("token\":\"") + 8); 
         string token = tokenInfo.Remove(tokenInfo.IndexOf("\"")); 
         System.Net.ServicePointManager.Expect100Continue = false; 
         var request = WebRequest.Create("https://api.soundcloud.com/tracks") as HttpWebRequest; 
         request.CookieContainer = new CookieContainer(); 
         //some default headers 
         request.Accept = "*/*"; 
         request.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3"); 
         request.Headers.Add("Accept-Encoding", "gzip,deflate,sdch"); 
         request.Headers.Add("Accept-Language", "en-US,en;q=0.8,ru;q=0.6"); 
         //file array 
         var files = new UploadFile[] { new UploadFile(filePath, "@/" + filePath, "application/octet-stream") }; 
         //other form data 
         var form = new NameValueCollection(); 
         form.Add("track[title]", "biksad"); 
         form.Add("track[sharing]", "public"); 
         form.Add("oauth_token", token); 
         form.Add("format", "json"); 

         form.Add("Filename", fileName); 
         form.Add("Upload", "Submit Query"); 
         string lblInfo; 
         try 
         { 
          using (var response = HttpUploadHelper.Upload(request, files, form)) 
          { 
           using (var reader = new StreamReader(response.GetResponseStream())) 
           { 
            lblInfo = reader.ReadToEnd(); 
           } 
          } 
         } 
         catch (Exception ex) 
         { 
          lblInfo = ex.ToString(); 
         } 
        } 

當我調試此代碼的一部分。我得到(422)catch塊中的無法處理的實體錯誤。爲什麼我得到這個錯誤?如何解決這個問題?

回答

0

檢查的SoundCloud文件:

http://developers.soundcloud.com/docs#errors

422 - 「請求看起來還好,但一個或多個參數看起來有點扭曲這有可能是你發錯了格式的數據(例如,一個數組,我們期望一個字符串)。「

+1

哪裏是我找不到的「扭曲」。 – user2923864

+0

這個答案中的代碼有幫助嗎? http://stackoverflow.com/questions/11892440/connecting-to-and-uploading-tracks-with-soundcloud-api-using-c-sharp-net?rq=1 – user1616625

+0

我的代碼是與此代碼相同。 – user2923864

相關問題