Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用HTTPClient Post方法将文件附加到JIRA问题附件时,JIRA返回的JSON对象为;[……”是;_C#_Httpclient_Jira - Fatal编程技术网

C# 使用HTTPClient Post方法将文件附加到JIRA问题附件时,JIRA返回的JSON对象为;[……”是;

C# 使用HTTPClient Post方法将文件附加到JIRA问题附件时,JIRA返回的JSON对象为;[……”是;,c#,httpclient,jira,C#,Httpclient,Jira,我尝试使用HttpClient-post方法将一个文件附加到JIRA问题附件中-返回的JIRA JSON对象是[]。请在下面找到我的代码块 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Http; using System.Json; using System.Web.Script.Serialization; using System.

我尝试使用HttpClient-post方法将一个文件附加到JIRA问题附件中-返回的JIRA JSON对象是
[]
。请在下面找到我的代码块

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Http;
using System.Json;
using System.Web.Script.Serialization;
using System.Net;

namespace JiraAttachements
{
    class Class1
    {
        public void AddAttachment()
        {
            System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
            client.DefaultRequestHeaders.ExpectContinue = false;
            client.Timeout = TimeSpan.FromMinutes(90);
            byte[] crdential = UTF8Encoding.UTF8.GetBytes("wwww:yyyy");
            client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(crdential));
            client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

            var filecontent = new ByteArrayContent(System.IO.File.ReadAllBytes("C:\\Users\\xxx\\Desktop\\Keys.txt"));

            var content = new MultipartFormDataContent("AA");

            content.Headers.Add("X-Atlassian-Token", "nocheck");
            content.Headers.Add("charset", "UTF-8");

            content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data")
            {
                Name="\"file\"",
                FileName = "C:\\Users\\xxx\\Desktop\\Keys.txt"
            };

            content.Add(filecontent);
            try
            {
                client.PostAsync("https://{server name}.atlassian.net/rest/api/2/issue/TEST-1/attachments", content).ContinueWith(requesTask =>
                {
                    try
                    {
                        HttpResponseMessage response = requesTask.Result;
                        if (response.StatusCode == "OK")
                        {
                            Console.WriteLine(" Attached .");
                        }
                        else
                        {
                        }
                    }
                    catch (Exception exception)
                    {
                    }
                });


            }
            catch (Exception exception)
            {
                Console.WriteLine(exception.StackTrace.ToString());
                Console.ReadLine();
            }

            Console.ReadKey();
        }
    }
}

请在我的代码中突出我的错误。我对multipart/form数据边界值集过程印象深刻。请为JIRA问题附件提供一些使用
HttpClient
post方法的示例

现在我可以通过更改下面的代码块将文件附加到JIRA问题附件部分

var filename = "C:\\Users\\XXXX\\Desktop\\Sample.xlsx";
var file_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
var filecontent = new ByteArrayContent(System.IO.File.ReadAllBytes(filename));
var content = new MultipartContent("form-data", "AAAA");

content.Headers.Add("X-Atlassian-Token", "nocheck");
content.Headers.Add("charset", "UTF-8");

filecontent.Headers.ContentDisposition = 
    new System.Net.Http.Headers.ContentDispositionHeaderValue("form-data") {
        Name="\"file\"",
        FileName = "Attachment.xlsx"
    };

filecontent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(file_type);
content.Add(filecontent);
和的可能副本