2016-06-13 97 views
1

我正在創建一個簡單的winform應用程序,該應用程序可以使用所提供的API在Visual Studio Team Services敏捷工作流程中創建新的bug項目。 The API Documentation使用適用於Visual Studio Team Services的API添加附件

目前它可以創建一個新的bug,標題,標籤和描述。

我想能夠添加文件附件,但出於某種原因,這是行不通的。

代碼來創建錯誤如下

private static void createInitailItemPostObject() 
    {           
     AddUpdateProp("/fields/System.Title", newTaskItem.Title); 
     AddUpdateProp("/fields/System.Tags", newTaskItem.Tags); 
     AddUpdateProp("/fields/System.Description", newTaskItem.Description); 
     AddUpdateProp("/fields/System.History", "Upload first file");  
    } 

    private static void AddUpdateProp(string field, string value) 
    {    
     DataObjectsProject.VSOJasonWorkItemPostData wiPostData = new DataObjectsProject.VSOJasonWorkItemPostData(); 
     wiPostData.op = "add"; 
     wiPostData.path = field; 
     wiPostData.value = value; 
     wiPostDataArr.Add(wiPostData);   
    } 

JSON的調用與下面的代碼

public static async void Post(string url, System.Net.Http.HttpContent wiPostDataContent, string returnType, JSONReturnCallBack callBack) 
    { 
     string responseString = String.Empty; 
     try 
     { 
      using (System.Net.Http.HttpClient client = new System.Net.Http.HttpClient()) 
      { 

       client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 


       client.DefaultRequestHeaders.Authorization = 
          new AuthenticationHeaderValue("Basic",Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", username, password)))); 


        using (System.Net.Http.HttpResponseMessage response = client.PostAsync(url, wiPostDataContent).Result) 
        { 
         response.EnsureSuccessStatusCode(); 
         string ResponseContent = await response.Content.ReadAsStringAsync(); 

         responseString = ResponseContent; 

        } 
      } 
     } 
     catch(Exception ex) 
     { 
         Console.WriteLine(ex.ToString()); 
         Console.ReadLine(); 
     } 
     callBack(responseString,returnType); 
    } 

要添加附件,完成我似乎無法得到它的轉換下面的代碼工作就像我目前的代碼。

function readBlob() { 
var files = document.getElementById('fileselect').files; 
if (!files.length) { 
    alert('Please select a file!'); 
    return; 
} 
var file = files[0]; 
var filename = file.name; 
var reader = new FileReader(); 
reader.onloadend = function (evt) { 
    if (evt.target.readyState == FileReader.DONE) { 
     // Post file content to server 
     $.ajax({ 
      url: "http://fabrikam.visualstudio.com/DefaultCollection/_apis/wit/attachments?filename=" + filename + "&api-version=1.0", 
      data: evt.target.result, 
      processData: false, 
      contentType: "application/json", 
      type: "POST" 
     }); 
    } 
}; 
reader.readAsArrayBuffer(file); 

}

有沒有其他人能做到這一點?

我使用的URL是下面的鏈接直接調用API

https://[ACCOUNT].visualstudio.com/DefaultCollection/[Project]/_apis/wit/attachments?fileName=Test&api-version=1.0

回答

相關問題