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
我一直在看那個小時。其他電話需要項目,但我猜測附件文件不會被存儲在項目中。 接下來的階段,你會將附件與任務,錯誤鏈接起來。 謝謝 –