HttpWebRequest multipart/form-data c# – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

HttpWebRequest multipart/form-data c# – .NET – Fórum – Programujte.comHttpWebRequest multipart/form-data c# – .NET – Fórum – Programujte.com

 

JIzzy
~ Anonymní uživatel
2 příspěvky
10. 8. 2012   #1
-
0
-

Zdravim, 

potřeboval bych poradit, jak mám postnout přílohy do JIRA, pomocí JIRA REST API. Konkrétně tento problém:

POST Add one or more attachments to an issue. This resource expects a multipart post. The media-type multipart/form-data is defined in RFC 1867. Most client libraries have classes that make dealing with multipart posts simple. For instance, in Java the Apache HTTP Components library provides a MultiPartEntity that makes it simple to submit a multipart POST. In order to protect against XSRF attacks, because this method accepts multipart/form-data, it has XSRF protection on it. This means you must submit a header of X-Atlassian-Token: nocheck with the request, otherwise it will be blocked. The name of the multipart/form-data parameter that contains attachments must be "file" A simple example to upload a file called "myfile.txt" to issue REST-123: curl -D- -u admin:admin -X POST -H "X-Atlassian-Token: nocheck" -F "file=@myfile.txt" ....http://myhost/rest/api/2/issue/TEST-123/attachments......

Nevím si rady s tím, kam mám co vepsat a jak udělal toto: (pomocí HttpWebRequest)

                curl -D- -u admin:admin -X POST -H "X-Atlassian-Token: nocheck" -F "file=@myfile.txt

Co jsem koukal, tak se jedná o nějaký multipart/form-data, ale to nevím, jak se posílají....

Děkuji za Vaše odpovědi...

Nahlásit jako SPAM
IP: 46.13.46.–
JIzzy
~ Anonymní uživatel
2 příspěvky
12. 8. 2012   #2
-
0
-

   

string boundary = "--" + DateTime.Now.Ticks.ToString();
            string newline = Environment.NewLine;

            foreach (JIRAAttachments attachm in attachments.attachments)
            {
                byte[] buffer = null;

                using (BinaryReader reader = new BinaryReader(File.OpenRead(@"..\Attachments\" + attachm.filename)))
                {
                    buffer = reader.ReadBytes((int)reader.BaseStream.Length);
                }

                request = HttpWebRequest.Create(logInformation.GetUri() + "/rest/api/2/issue/" + key + "/attachments") as HttpWebRequest;
                request.Headers.Add("Authorization: Basic " + logInformation.GetEncodeAuthentication());
                request.Method = "POST";
                request.ContentType = string.Format("multipart/form-data; boundary={0}", boundary);
                request.Headers.Add("X-Atlassian-Token: nocheck"); 
                request.KeepAlive = true;
                request.ContentLength = buffer.Length;
                request.SendChunked = true;

                request.Proxy = wp;


                using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
                {

                    // Part header.
                    writer.WriteLine(boundary);
                    writer.WriteLine("Content-Disposition: form-data; name=\"" + attachm.author.name + newline);
                    writer.WriteLine(attachm.author.name);
                    writer.WriteLine(boundary);
                    writer.WriteLine("Content-Disposition: form-data; name=\"soubor\"; filename=\"" + Path.GetFullPath(@"..\Attachments\" + attachm.filename) + "\"");
                    writer.WriteLine("Content-Type:" + GetContentType(attachm.filename) + newline);
                    writer.Flush();

                    // Part content.
                    writer.BaseStream.Write(buffer, 0, buffer.Length);

                    // Part footer.
                    writer.WriteLine(boundary + "--");
                    writer.Flush();
                }
            }

            //  Delete all attachments in directory
            Array.ForEach(Directory.GetFiles(@"..\Attachments\"), delegate(string path) { File.Delete(path); });
Nahlásit jako SPAM
IP: 85.71.40.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý