рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ RestRequest рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓рддрд╛ рд╣реИред
ResponseStatus рдХреЛ рддреНрд░реБрдЯрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ "рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд▓рд┐рдЦреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдЗрдЯреНрд╕ рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ рдмрд╛рдЗрдЯреНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред"
рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд▓рд┐рдЦрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд╛рдордЧреНрд░реА рдХреА рд▓рдВрдмрд╛рдИ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ .NET рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА-рд▓рдВрдмрд╛рдИ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рдереЗ рдФрд░ рд╣реЗрдбрд░ рд╕рд╣реА рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдЬреЙрдирдлреБрд▓рд░ рдХреЗ рдирд╡реАрдирддрдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ рдФрд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдХреГрдкрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдирд╣реАрдВ рддреЛ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВред
рд╕рдорд╕реНрдпрд╛ рд╡рд╛рдкрд╕ рдЖ рдЧрдИред
рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ 105.2.3 (рдирдЧреЗрдЯ рдкрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рд░) рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде ~ 3.5рдПрдордмреА рдЖрдХрд╛рд░ рдореЗрдВред
105.1.0 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдм рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
StackOverflow (рдореЗрд░рд╛ рдирд╣реАрдВ) рдкреЛрд╕реНрдЯ рд╣реИ ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдФрд░ рдмрдЧ #769 рдФрд░ #742 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдореБрдЭреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рджреЗрдВ рдФрд░ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред рд╕рд╛рдордЧреНрд░реА рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реБрдЖред
рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЦрдмрд░ рд╣реИ?
рдЯрдХреНрдХрд░ - рд▓рдЧрддрд╛ рд╣реИ рдЕрднреА рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ
рд╣рд╛рдВ, рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ 105.1.0 рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рд╕реЗ рднреА рдорджрдж рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИ
рдЕрднреА рднреА рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред
рдореБрдЭреЗ рд░реЗрд╕реНрдЯрд╢рд╛рд░реНрдк рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ
рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп
req.AddFile("call[Picture_attributes][file]", (s) => imageStream.CopyTo(s), GetRandomFileName("jpg"), "image/jpeg");
рдпрд╣ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛
рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдБ
req.AddFile ("рдХреЙрд▓ [Picture_attributes] [рдлрд╝рд╛рдЗрд▓]", imageStream.GetBytes (), GetRandomFileName ("jpg"), "image/jpeg");
рд╕рд╛рде
public static byte[] GetBytes(this Stream s)
{
using (var ms = new MemoryStream())
{
s.CopyTo(ms);
return ms.ToArray();
}
}
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдЗрдореЗрдЬрд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдмрд╛рдЗрдЯ рднреЗрдЬрддреЗ рд╕рдордп рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ [] рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдЗрд╕ рдмрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдерд╛:
var req = GetRestRequest("Upload", Method.POST, null);
//req.AddFile("file",
// (s) => {
// var stream = input(imageObject);
// stream.CopyTo(s);
// stream.Dispose();
// },
// fileName, contentType);
req.Files.Add(new FileParameter {
Name = "file",
Writer = (s) => {
var stream = input(imageObject);
stream.CopyTo(s);
stream.Dispose();
},
FileName = fileName,
ContentType = contentType,
ContentLength = contentLength
});
рдХреНрдпрд╛ RestRequest.AddFile .NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ AddFile рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ #if FRAMEWORK рдХрдВрдкрд╛рдЗрд▓рд░ рдирд┐рд░реНрджреЗрд╢ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @bcabrera рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдПрдХ рдЪреБрдиреМрддреА рд╣реЛрдЧреАред
.NET рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдХреЛрдИ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИред рдкреНрд░рдЧрддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рдореБрджреНрджреЗ рджреЗрдЦреЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЗрд╕ рдмрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдерд╛: