RestRequest์ ํ์ผ ์ถ๊ฐ๊ฐ ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
ResponseStatus๋ ์ค๋ฅ๋ก ์ค์ ๋ฉ๋๋ค.
response.Error ๋ฉ์์ง๋ "์คํธ๋ฆผ์ ์ธ ๋ฐ์ดํธ๊ฐ ์ง์ ๋ ์ฝํ ์ธ ๊ธธ์ด ๋ฐ์ดํธ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํฉ๋๋ค."์ ๋๋ค.
์คํธ๋ฆผ์ ์ฐ๊ธฐ ์ ์ ์ฝํ ์ธ ๊ธธ์ด๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
.NET์ ํด๊ฒฐํ๊ธฐ ์ํด Content-Length์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ผ๋ก ํ ์คํธ๋์ง ์์๊ณ ํค๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ง ์์์ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค. ๋ณด๊ณ ์์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
jonfuller์ ์ต์ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ๋ค์ ์๋ํ๊ณ ์ฌ์ ํ ์๋ํ์ง ์์ผ๋ฉด ์๋ ค์ฃผ์ญ์์ค.
๋๋ ์ด๊ฒ์ด ํด๊ฒฐ๋ ๊ฒ์ด๋ผ๊ณ ๋ฏฟ์ต๋๋ค. ํ ์คํธํ๊ณ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์๋ ค์ฃผ์ธ์.
๋ฌธ์ ๊ฐ ๋ฐํ๋์์ต๋๋ค.
~3.5MB ํฌ๊ธฐ์ ํ์ผ์ด ์๋ ๋ฒ์ 105.2.3(ํ์ฌ nuget์์ ์์ ).
105.1.0์ผ๋ก ๋ค์ด ๊ทธ๋ ์ด๋ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ์๋ํฉ๋๋ค.
StackOverflow (๋ด ๊ฒ์ด ์๋)์ ๋น์ทํ
์ด๊ฒ์ ๋ค๋ฅธ ๋ฒ๊ทธ #769 ๋ฐ #742์ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ์ ์ ์์ต๋๋ค. ์ฝํ ์ธ ๊ธธ์ด์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น?
๋ฒํ - ์ฌ์ ํ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค
๋ค, ์ด๊ฒ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. 105.1.0์ผ๋ก ๋์๊ฐ๋ ๋์์ด ๋์ง ์์์ต๋๋ค.
์์ง ํด๊ฒฐ๋์ง ์์์ต๋๋ค.
์ต์ ๋ฒ์ ์ restsharp์์ ๋น์ทํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ฌ์ฉํ ๋
req.AddFile("ํธ์ถ[๊ทธ๋ฆผ_์์ฑ][ํ์ผ]", (s) => imageStream.CopyTo(s), GetRandomFileName("jpg"), "์ด๋ฏธ์ง/jpeg");
์ต์ ๋ฒ์ ์์๋ ์๋ํ์ง ์์ต๋๋ค
ํ์ง๋ง ๋ด๊ฐ ์ฌ์ฉํ๋ค๋ฉด
req.AddFile("ํตํ[๊ทธ๋ฆผ_์์ฑ][ํ์ผ]", imageStream.GetBytes(), GetRandomFileName("jpg"), "์ด๋ฏธ์ง/jpeg");
~์ ํจ๊ป
public static byte[] GetBytes(this Stream s)
{
using (var ms = new MemoryStream())
{
s.CopyTo(ms);
return ms.ToArray();
}
}
ํจ๊ณผ๊ฐ์๋ค.
๊ทธ๋์ imageStream.CopyTo๋ฅผ ์ฌ์ฉํ์ฌ ์คํธ๋ฆผ์ ์ฌ์ฉํ๋ฉด byte[]๋ฅผ ๋ณด๋ด๋ ๋์ ์๋ํ์ง ์์ต๋๋ค.
์ด๊ฒ์ด ์ด ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋์ ํด๊ฒฐ์ฑ ์ด์์ต๋๋ค.
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 Core์ ๋ํด ์ค๋น๋์ง ์์์ต๋๊น? ์ธํฐํ์ด์ค์ AddFile ๋ฉ์๋ ์ฃผ์์ #if FRAMEWORK ์ปดํ์ผ๋ฌ ์ง์๋ฌธ์ด ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. @bcabrera ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ๋ด ์ฌ์ฉ ์ฌ๋ก์ ์ ํฉํ ์ ์์ง๋ง ๋จ์ ํ ์คํธ๊ฐ ์ด๋ ค์ธ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
.NET Core์ฉ ๋ฒ์ ์ ์์ง ์์ต๋๋ค. ์งํ ์ํฉ์ ๋ชจ๋ํฐ๋งํ๋ ค๋ฉด ๋ฏธํด๊ฒฐ ๋ฌธ์ ๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ด ์ด ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋์ ํด๊ฒฐ์ฑ ์ด์์ต๋๋ค.