์ด๊ฒ์ ๋ชจ๋ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ๊ฒฐํฉํ๋ ์์ฌ์์ ๋๋ค.
.NET Standard 2.0์ ์ง์ํ๋ค๋ ๊ฒ์ ๋ค์ ํ๋ซํผ์ ๋ชจ๋ ์ง์ํ๋ค๋ ์๋ฏธ
์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ shim์ ์ฌ์ฉํ์ฌ RestSharp๋ฅผ ์คํํ ๋ ๋๋ถ๋ถ ์๋ํฉ๋๋ค. HTTP ํธ์ถ์ ํธ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ํด๋์ค์ ๋ฌธ์ ๊ฐ ์์ ๋ฟ์ ๋๋ค. HTTP ํด๋ผ์ด์ธํธ๊ฐ ์ HttpClient ๋ก ์ ํ๋ ๊ฒฝ์ฐ ์๋ํด์ผ ํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ฌ๊ธฐ ์ฌ๋ฌด์ค์์ RestSharp๋ฅผ ๊ฝค ๋ง์ด ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ด๋ฏธ ASP.NET Core๋ฅผ ์ฌ์ฉํ์ฌ ์คํ๋๋ ์๋ก์ด ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋ฃจ์ ์ ์์ ์ค์ด๋ฏ๋ก RestSharp๊ฐ ์ต์ .NET์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ์๋ก์ด REST ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ํํ ํ์๊ฐ ์๋๋ก ๋ฒ์ ์ ๋ณ๊ฒฝํฉ๋๋ค.
@qJake .NET Standard 2.0์๋ API ํ๋ฉด์ด ํฌ๊ฒ ํ์ฅ๋์ด ์์ผ๋ฏ๋ก HttpClient๋ก ์ ํํ๋ ๋์ HttpWebRequest๋ฅผ ์ ์งํ ์ ์์ต๋๋ค. ์ฌ์ ์ฌ์ฉํ์ฌ ๊ฒฝํํ ๋ฌธ์ ๊ฐ ๋ ์ด์ ์กด์ฌํ์ง ์์ ์ ์์ต๋๊น?
์ .NET Standard 2.0์ธ๊ฐ? ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฅ ๋ฎ์ ๋ฒ์ ์ ๋์์ผ๋ก ํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
@mguinness @dotnet/corefx ํ๋ก์ ํธ์์ ์ด ์ฃผ์ ์ ์ฐธ์กฐํ์ญ์์ค - HttpWebRequest ๋ .NET Standard์ ์ผ๋ถ๊ฐ ์๋์ง๋ง System.Net.Http.HttpClient ๋ .NET Standard์ ์ผ๋ถ์ ๋๋ค.
UWP ํ์ฌ ๋ฒ์ ๋ ์ง์ํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค. (Fall Creators ์ ๋ฐ์ดํธ ์ด์ )
UWP ํ์ฌ ๋ฒ์ ์ netstandard1.4๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด๊ฒ์ด ์ด๋ค ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ฌ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์คํ์ ์์ํด์ผ ํฉ๋๋ค.
@qJake Well HttpWebRequest ๋ .NET Standard 2.0์ ์์ผ๋ฉฐ, ๊ทํ์ ์ด์ค์ ์ .NET Standard 1.6 ์ดํ์๋ง ํด๋น๋ฉ๋๋ค.
@mguinness ์ค, HttpClient
์ ํํฉ๋๊น?
์ฌ๋๋ค์ ํ์ฌ ๋ฒ์ ์ UWP ๋ฌธ์ ๋ก ์ธํด 1.4๋ฅผ ์ํฉ๋๋ค. NETStandard 2.0์ UWP vNext์์๋ง ์ง์๋ฉ๋๋ค.
@qJake FWIW, ์ด์ ๋ฒ์ ์ .NET Standard์์ ์ฌ์ฉํ ์ ์๋ System.Net.Requests nuget ํจํค์ง๋ ์์ต๋๋ค.
์๋ค์, ์ด๊ฒ์ ๋ํ ์ ๋ฐ์ดํธ ๋๋ ETA๊ฐ ์์ต๋๊น? ๋ด dotnet core 2 ์ฑ์์ RestSharp๋ฅผ ์ฌ์ฉํ ๊ณํ์ด๋ฉฐ ํจํค์ง๋ฅผ ์ ํํ๊ณ ์ถ์ง ์์ต๋๋ค.
์งํ์ค์ธ ์์ ์ ๋๋ค. ๋ ๊ฑฐ์ ํญ๋ชฉ์ด ์ ๊ฑฐ๋์์ง๋ง JSON.NET๋ ๋ฆด๋ฆฌ์ค์ ํจ๊ป ๊ฐ์ ธ์ฌ ๊ฒ์ ๋๋ค. ๊ณ์ ์ง์ผ๋ด ์ฃผ์ธ์.
AWS Lambda์ ์ฌ์ฉํด์ผ ํ๋๋ฐ RestSharp.NetCore 105.2.3์ ์ฌ์ฉํ ๋ AWS ๋ฐํ ์ค๋ฅ
-- ๊ฐ์ง๋ ํจํค์ง ๋ค์ด๊ทธ๋ ์ด๋: 4.3.0-preview1-24530-04์์ 4.1.0์ผ๋ก System.Reflection.
RestSharp๋ 4.1์ ์ฌ์ฉํ์ง๋ง AWS๋ .NetCoreApp 1.0์ ๋ํด 4.3 ๋ฒ์ ์ธํธ๋ฅผ ์ง์ํฉ๋๋ค.
System.Runtime.Serialization.Primitives.4.3.0-preview1-24530-04์ ์ข ์๋ ๋ฒ์ ์ ๋๊น?
์ฐ๋ฆฌ๋ .net ์ฝ์ด๋ก ์ด๋ํ๊ณ ์์ผ๋ฉฐ .net ํ์ค 2.0์์ RestSharp๋ฅผ ์ฐธ์กฐํ ์ ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค. nuget ํจํค์ง ์ค์น์ ์คํจํ์ต๋๋ค.
ํจํค์ง 'RestSharpSigned 105.2.3'์ ํ๋ก์ ํธ ๋์ ํ๋ ์์ํฌ '.NETStandard,Version=v2.0' ๋์ '.NETFramework,Version=v4.6.1'์ ์ฌ์ฉํ์ฌ ๋ณต์๋์์ต๋๋ค. ์ด ํจํค์ง๋ ํ๋ก์ ํธ์ ์์ ํ ํธํ๋์ง ์์ ์ ์์ต๋๋ค.
ํจํค์ง ๋ณต์์ ์คํจํ์ต๋๋ค. ์ ๋ํ ํจํค์ง ๋ณ๊ฒฝ ๋กค๋ฐฑ
@trampster ์ํ๋ฅผ ์๋ชป ์ดํดํ๊ณ ์๋ ๊ฒ
์ดํดํฉ๋๋ค. ์์๊ฐ ์์์ ์๋ฆฌ๊ธฐ ์ํด ๊ฒ์ํ ๊ฒ์ ๋๋ค. ๋ํ .net ํ์ค 2.0์ ๋ฆด๋ฆฌ์คํ ๋ Microsoft์์ ๋ฐํํ .net ํ์ค 2.0์ .net ์ ์ฒด dll์ ์ฐธ์กฐํ๊ธฐ ์ํ .NET Framework ํธํ์ฑ ๋ชจ๋๊ฐ ์ฌ๊ธฐ์์ ์๋ํ์ง ์์์ ๋ณด์ฌ์ค๋๋ค. ๋ฐ๋ผ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ฐจ๋จ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ค๋ฅธ Rest ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ด๋ํ ํ์๊ฐ ์๋ ๊ฒ์ ์ ํธํ์ง๋ง ํ์ํ๋ค๋ฉด ๊ทธ๋ ๊ฒ ํ ๊ฒ์ ๋๋ค. ์ด ๋ณํ์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
ํฅ๋ฏธ๋กญ๊ฒ๋ nuget https://www.nuget.org/packages/RestSharp.NetCore ์ 98,895 ๋ค์ด๋ก๋๊ฐ ์๋ RestSharp.NetCore ํจํค์ง๊ฐ ์์ต๋๋ค. ๋ด๊ฐ ๊ทธ๊ฒ์ ๋ฏฟ์ ์ ์๋ค๋ฉด.
@trampster ์ด๋ ์ต์ ๋ ์ ์๋ nuget ๊ฒฝ๊ณ ์ ๋๋ค. ๊ธฐ์กด .NET Framework ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฌ์ฉ์ ์ฐธ์กฐํ์ธ์. ๋ํ csproj์ ๋์ ํ๋ ์์ํฌ๋ ๋ฌด์์ ๋๊น? netcoreapp2.0 ๋๋ v4.6.1์ ๋๊น?
๋ง์ง๋ง ์ค์ ๋ค์ ์ดํด๋ณด์ญ์์ค. ๋กค๋ฐฑํ์ต๋๋ค. ๊ทธ ํ ๋๋ RestSharp์ ๋ํ ์ธ๊ธ์ด ์์ต๋๋ค.
๋ํ ๋ด ๊ฒ์๋ฌผ์ ์ฝ์ผ๋ฉด netcore2.0 ๋๋ v4.6.1์ด ์๋ .net ํ์ค 2.0์์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๋ํ ๊ฒฝ๊ณ ์๋ v4.6.1์ด ์ฌ์ฉ๋์์ง๋ง RestSharp nuget ํจํค์ง์๋ v4.6.1์ด ์๋ค๋ ์ ์ ์ ์ํด์ผ ํฉ๋๋ค.
@trampster ํธํ์ฑ ๋ธ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ์ฌ .NET Core 2.0 ์ฑ์ ์ฑ๊ณต์ ์ผ๋ก ์ค์นํ์ง๋ง ์คํํ๋ ค๊ณ ํ๋ฉด HttpWebRequest
์ฌ์ฉ์ผ๋ก ์์ฝ๋๋ ๋ฐํ์ ์์ธ๊ฐ ๋ฐ์ํฉ๋๋ค. NuGet ํจํค์ง ์ค์น ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์์ผ๋ฏ๋ก ์ด์ํฉ๋๋ค. ๐
๋๋ ๋ํ ์ด๊ฒ์ ์คํํ๊ณ ์์ต๋๋ค :\ @alexeyzimarev ์ปค๋ฎค๋ํฐ๊ฐ ์ด๋ป๊ฒ ๋์์ ์ค ์
.NET Core ์ฑ์์ ํ์ฌ nuget ํจํค์ง ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ํ๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํฉ๋๋ค.
์ .NET Core ์ฝ์ ์ฑ์ ๋ง๋ค๊ณ ํจํค์ง ๊ด๋ฆฌ์์์ Install-Package RestSharp -Version 105.2.3
๋ฅผ ์คํํ๊ณ ๋ค์ ์ฝ๋๋ฅผ Main์ ์ถ๊ฐํ์ต๋๋ค.
```C#
var ํด๋ผ์ด์ธํธ = ์๋ก์ด RestClient();
client.BaseUrl = ์๋ก์ด Uri("https://api.github.com/");
var ์์ฒญ = ์๋ก์ด RestRequest();
request.Resource = "์ฌ์ฉ์/restsharp/๋ฆฌํฌ์งํ ๋ฆฌ";
var ์๋ต = client.Execute(์์ฒญ);
```
netcoreapp2.0์ ํ๊ฒํ
ํ๋ฉด System.PlatformNotSupportedException: Operation is not supported on this platform.
๋์ง๋ง csproj์์ <TargetFramework>net46</TargetFramework>
๋ก ๋ณ๊ฒฝํ๋ฉด ์๋ํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ ์ฒด ํ๋ ์์ํฌ๋ฅผ ๋์์ผ๋ก ํ์ง ์์ต๋๋ค
@niemyjski ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๋ฐ์ดํธ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋์ RestSharp.NetCore ๋ฅผ ์ฌ์ฉํด ๋ณด์ธ์. ๋ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฌ์ฉ ์ค์ด๋ฏ๋ก ์ฌ์ฉํ๊ธฐ์ ์ถฉ๋ถํ ์์ ์ ์ด์ด์ผ ํฉ๋๋ค.
ADH.ํธ์์ฝ์ด
์ฑ๋ฒ ์ด์ด์คํ
CoreLib.Web
์นด์ฐ์นDB.ํด๋ผ์ด์ธํธ
DocuSign.NetCore
Flip.PomboCorreio.Connector
FluentEmail.Mailgun
GiphyApiClient.NetCore
์ธํฐ์ฝค.์ฝ์ด
IronSphere.Henchmen
MasterCard-Core-๋น๊ณต์
์ ๋ฑ
ํฌ๋ท๋ท
MessageMedia.REST.API.NetCore
๋ฏธ๋์ค.๋ท์ฝ์ด
MiX.Integrate.Api.ํด๋ผ์ด์ธํธ
OdinSdk.BaseLib.Core
OneSignal.AspNet.Core.SDK
OneSignal.CSharp.SDK.Core
Onlinesites.ShopFacilBradesco
pusher-http-dotnet-core
RepositoryFramework.Api
RepositoryFramework.EntityFramework
RestSharp.Newtonsoft.Json
RestSharp.Newtonsoft.Json.NetCore
Slack.Webhooks.Core
StoneCo.PomboCorreio.Connector
SwitchAPI.์ปค๋ฅํฐ
Syncromatics.Clients.Metro.Api
TransportApi.Sdk.NetCore
Twilio.NetCore
UtilityFramework.Application.Core
UtilityFramework.Services.Iugu.Core
RestSharp.NetCore์ ์ ๋ก๋๊ฐ ๋๊ตฌ์ธ์ง ์๋ ์ฌ๋์ด ์์ต๋๊น? ๋๋ ๊ฑฐ๊ธฐ github๋ฅผ ๋ณด์๊ณ RestSharp์ ํฌํฌ๊ฐ ์์ต๋๋ค. ํจํค์ง์ ๋ผ์ด์ผ์ค๊ฐ ๋์ด๋์ด ์์ง ์์ต๋๋ค. ์ ๊ฐ ์๊ธฐ๋ก๋ ์ ์ฑ ์ฝ๋์ ๋๋ค.
์ด ํ๋ก์ ํธ๋ฅผ ์์ ํ ์ฌ๋์ restsharp ํจํค์ง ๋ค์์คํ์ด์ค์ ์์ ๊ถ์ ์ฐพ์์ผ ํ๋ฉฐ... ์๋ง๋ ํด๋น ํจํค์ง๋ฅผ ์ญ์ ํด์ผ ํฉ๋๋ค. ํจํค์ง๋ฅผ ๋์ปดํ์ผํ์ฌ ์ ์ฑ ์ฝํ ์ธ ๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
2017๋ 10์ 5์ผ ์คํ 10์ 57๋ถ,
@niemyjski (https://github.com/niemyjski) ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๋ฐ์ดํธ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ๋์ RestSharp.NetCore(https://www.nuget.org/packages/RestSharp.NetCore/)๋ฅผ ์ฌ์ฉํด ๋ณด์ธ์. ๋ค์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฌ์ฉ ์ค์ด๋ฏ๋ก ์ฌ์ฉํ๊ธฐ์ ์ถฉ๋ถํ ์์ ์ ์ด์ด์ผ ํฉ๋๋ค.
ADH.ํธ์์ฝ์ด
์ฑ๋ฒ ์ด์ด์คํ
CoreLib.Web
์นด์ฐ์นDB.ํด๋ผ์ด์ธํธ
DocuSign.NetCore
Flip.PomboCorreio.Connector
FluentEmail.Mailgun
GiphyApiClient.NetCore
์ธํฐ์ฝค.์ฝ์ด
IronSphere.Henchmen
MasterCard-Core-๋น๊ณต์
์ ๋ฑ ํฌ๋ท๋ท
MessageMedia.REST.API.NetCore
๋ฏธ๋์ค.๋ท์ฝ์ด
MiX.Integrate.Api.ํด๋ผ์ด์ธํธ
OdinSdk.BaseLib.Core
OneSignal.AspNet.Core.SDK
OneSignal.CSharp.SDK.Core
Onlinesites.ShopFacilBradesco
pusher-http-dotnet-core
RepositoryFramework.Api
RepositoryFramework.EntityFramework
RestSharp.Newtonsoft.Json
RestSharp.Newtonsoft.Json.NetCore
Slack.Webhooks.Core
StoneCo.PomboCorreio.Connector
SwitchAPI.์ปค๋ฅํฐ
Syncromatics.Clients.Metro.Api
TransportApi.Sdk.NetCore
Twilio.NetCore
UtilityFramework.Application.Core
UtilityFramework.Services.Iugu.Coreโ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub(https://github.com/restsharp/RestSharp/issues/992#issuecomment-334651808)์์ ํ์ธํ๊ฑฐ๋ ์ค๋ ๋๋ฅผ ์์๊ฑฐ(https://github.com/notifications/unsubscribe-auth)ํ์ธ์. /AA-So9HrYQHV5nlV1m7W7eY-y_F5cBqqks5spaUXgaJpZM4PLH2m).
@alexeyzimarev ์ค๋ ํ๋ฆฌ๋ฆด๋ฆฌ์ฆ nuget ํจํค์ง๋ฅผ ์ป์ ๊ธฐํ๊ฐ ์์ต๋๊น? ๋ฒ ํ ๋ฒ์ ์ด๊ณ ๋ชจ๋ ํ ์คํธ๊ฐ ์๋ํ๋๋ผ๋ ์ผ๋ถ ๋ค๋ฅธ ์ฌํญ์ด ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
์ฌํ RESTsharp๋ Core 2.0์์ ์๋ํ์ง ์์ต๋๋ค. HttpClient๋ก ๋์๊ฐ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
@niemyjski ์๋์, ์ฃ์กํฉ๋๋ค. WebRequest๋ฅผ HttpClient๋ก ๋ณ๊ฒฝํ๊ณ ์๋๋ฐ ์ด๊ฒ์ ํฐ ๋ณํ์ ๋๋ค. ๊ทธ ์ด์ ๋ WebRequest๊ฐ netstandard 2.0์์๋ง ์ฌ์ฉํ ์ ์๊ณ 1.6์ ์ง์ํ๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
@niemyjski ๋์์ด ํ์ํ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ๋ณ๋์ ๋ถ๊ธฐ์ ๊ฒ์ํ ์ ์์ต๋๋ค.
์ด์ ์ค์ ๋ก netstandard 2.0์ผ๋ก ์ ํํ์ต๋๋ค. netstandard 1.6์ ๋๋ฌด ๋ง์ ์์ ์ ์ํํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ง๋ง ์ฌ์ ํ HttpClient๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
์ด๊ฒ์ ํ์ธํ์ญ์์ค: https://github.com/restsharp/RestSharp/tree/netstandard
ํ๋ณด ํ์ํฉ๋๋ค.
@amivit ๋น์ ์ ๊ทธ๊ฒ์ ์คํํ๊ธฐ ์ํด ๋น์ ์ ์๊ฐ์ ๊ธฐ์ฌํ ์ ์์ต๋๋ค, ๊ทธ๋ ์ฃ ?
WebRequest๋ฅผ HttpClient๋ก ๋ณ๊ฒฝํ๊ณ ์๋๋ฐ ์ด๊ฒ์ ํฐ ๋ณํ์ ๋๋ค. ๊ทธ ์ด์ ๋ WebRequest๊ฐ netstandard 2.0์์๋ง ์ฌ์ฉํ ์ ์๊ณ 1.6์ ์ง์ํ๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
System.Net.Requests nuget ํจํค์ง๊ฐ ์์ผ๋ฏ๋ก ์๋ชป๋ ์ค๋ช ์ ๋๋ค.
์ฒ์์๋ WebRequest๋ฅผ ๊ณ ์ํ๊ณ ์๊ฐ์ด ์ง๋๋ฉด์ HttpClient๋ก ์ ํํ๋ ๊ฒ์ด ์ด๋ ต์ต๋๊น?
@mguinness ์ด ํจํค์ง๋ฅผ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น? ๋๋ ํ๋ค.
@mguinness ์ฐ๋ฆฌ๋ ๋งํ ์ ์์ต๋๋ค - 1.6์ ์์ด๋ฒ๋ฆฌ๊ณ 2.0์ผ๋ก ๊ฐ๊ณ WebRequest๋ฅผ ์ ์งํฉ๋๋ค. ์ ๋ ๊ฐ์ธ์ ์ผ๋ก ๊ด์ฐฎ์ต๋๋ค.
@alexeyzimarev ์ฃ์กํฉ๋๋ค. ๊ธฐ์ฌํ ์๊ฐ์ด ์์ต๋๋ค. ๋๋ ์ํ๋ค. RESTsharp๊ฐ ์ฒ์๋ถํฐ HttpClient์ ์์กดํ์ง ์๋๋ค๋ ์ฌ์ค์ ๋๋์ต๋๋ค. 2012๋ ๋ถํฐ WebClient ๋๋ .NET 4.5์ ๋นํด ๊ฐ์ ๋ ๊ธฐ๋ฅ์ด ์์์ต๋๊น?
@amivit ์๋ง ๊ณ ์ฅ๋์ง ์์๋ค๋ฉด ๊ณ ์น์ง ๋ง์ธ์.
๋ฏธ๋ฏธ๋ฏธ๋ง ํด์ ์ฃ์กํฉ๋๋ค :rofl:
๊ทธ๋ฌ๋ ๋ด ํด๋ผ์ด์ธํธ ์์ฉ ํ๋ก๊ทธ๋จ์ .net core 2.0์ผ๋ก ์
๊ทธ๋ ์ด๋ํ ํ RestSharp์ ๋ํ ๋ช ๊ฐ์ง ๊ฒฝ๊ณ ๊ฐ ํ์๋ฉ๋๋ค.
๊ฒฝ๊ณ NU1603: RestSharp.NetCore 105.2.3์ System.Runtime.Serialization.Formatters(>= 4.0.0-rc4-24217-03)์ ์์กดํ์ง๋ง System.Runtime.Serialization.Formatters 4.0.0-rc4-24217-03์ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ค๋ฆฝํ๋ค. System.Runtime.Serialization.Formatters 4.3.0-preview1-24530-04์ ๋๋ต์ ์ธ ์ต์์ ์ผ์น๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
์ง๊ธ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํ๋ ค๊ณ ํ์ง ์์์ต๋๋ค. ์๋ํ์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค.
๋ฐ๋ผ์ RestSharp๋ ์์ง .net core 2.0์ ์ง์ํ์ง ์์ต๋๋ค. ํ์ง๋ง, ์ธ์ ๊ฐ๋ ๋ ๊น์? ๋ ์ง๊ฐ ์ด๋ฏธ ์์ต๋๊น? (๊ธฐ๊ณ ์๋ก์) ์ด ์ผ์ ํ ์ ์๋๋ก ๋์๋๋ฆด๊น์?
@matthiasburger ๋ netstandard ๋ถ๊ธฐ๋ฅผ ํ์ธํฉ๋๋ค. ๊ทํ์ ๋๊ธ ์์ ๋ช ๊ฐ์ ๊ฒ์๋ฌผ๋ง ์ธ๊ธํ์ต๋๋ค.
์ง๊ธ์ 2.0์ผ๋ก ๊ฐ์ญ์์ค. ๋์ค์ ํญ์ http ํด๋ผ์ด์ธํธ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค ... ๋ํ
๋๊ธฐํ ๋ฐฉ๋ฒ์ ๊ฐ๋๋ก ์ปดํ์ผ๋ฌ ์ง์๋ฌธ์ด ์๋์ง ํ์ธํ์ญ์์ค.
(๋ผ๋)
๊ฐ์ฌ ํด์
-๋ธ๋ ์ดํฌ ๋์๋ฏธ์คํค
2017๋
10์ 11์ผ ์์์ผ ์ค์ 6:43 Alexey Zimarev [email protected]
์ผ๋ค:
@matthiasburger https://github.com/matthiasburger netstandard ํ์ธ
๋๋ญ ๊ฐ์ง.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/restsharp/RestSharp/issues/992#issuecomment-335782906 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AA-So8akA6MlKfoypWDSAqaElcYBPoAks5srKnUgaJpZM4PLH2m
.
sry @alexeyzimarev ๋๋ก๋ ๋ชจ๋ ๊ฒ์ ์ฝ์ด์ผ ํฉ๋๋ค. ์ดํด๋ด ๋๋ค :)
@niemyjski ๋ชจ๋ pragma ์ง์๋ฌธ์ด ์ ๊ฑฐ๋์์ต๋๋ค. ํ๋ซํผ, ํ๋ ์์ํฌ ๋ฑ๋ง๋ค ํธ์ฐจ๊ฐ ์๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค. ์ด๊ฒ์ด netstandard๊ฐ ํด๊ฒฐํ๊ธฐ ์ํด ์ ์ธํ ๊ฒ์ด๋ฉฐ ์ ๋ ๊ทธ๊ฒ์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
์, ์ด์ netstandard
๋ถ๊ธฐ๊ฐ ์๋ช
๋ ๊ฒ๊ณผ ์๋ช
๋์ง ์์ ๋ชจ๋์ ๋ํด ๋น๋๋ฉ๋๋ค. ์ฌ์ ํ ์คํจํ ๋ค ๊ฐ์ง ํ
์คํธ(์ธ์ฝ๋ฉ, ๋์ฝ๋ฉ)๊ฐ ์์ต๋๋ค. ํตํฉ ํ
์คํธ๋ ์์ง ํฌํจ๋์ง ์์์ต๋๋ค. ์ด๋ฒ ์ฃผ์ ์ฝ๋๋ฅผ ์๋ฃํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ํ์ง๋ง ๋น๋ ๋ฐ ํฉ์ DotNetCli๋ก ์ ํํ๋ ค๋ฉด ๋ ๋ง์ ์์
์ด ํ์ํฉ๋๋ค.
์๊ฒ ์ต๋๋ค. ๋ชจ๋ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. HttpListener(ํตํฉ)์์ ์ง์๋์ง ์๋ ์์ธ๋ก ์ธํด ๋ ๊ฐ์ง ํ ์คํธ๋ฅผ ์กฐ๊ฑด๋ถ๋ก ๋ฌด์ํด์ผ ํ์ต๋๋ค. ์ ์ ํ ์๋ฒ์ ํจ๊ป ์ฌ์ฉํ ๋ ์๋ํ ๊ฒ์ผ๋ก ์์ํ์ญ์์ค.
์ด์ DotNetCli๋ฅผ ์ฌ์ฉํ๊ณ nuget.exe ์ฌ์ฉ์ ์ค์งํ๋๋ก ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
๋ฉ์ง ์ผ์ ๊ณ์ํ์ญ์์ค @alexeyzimarev! ์ฒซ ๋ฐ๋งค๊ฐ ๋๋ฌด ๊ธฐ๋๋ฉ๋๋ค๐
VS2017 ๋ฐ .NET Core 2.0์ ๋์์ผ๋ก ํ๋ ์ค์ IIS์์ ํ ์คํธ๋ 106.0.0-alpha0277
ErrorException: System.PlatformNotSupportedException: ์ด ํ๋ซํผ์์๋ ์์ ์ด ์ง์๋์ง ์์ต๋๋ค.
System.Net.SystemWebProxy.GetProxy(Uri ๋์)์์
System.Net.ServicePointManager.ProxyAddressIfNecessary(Uri& ์ฃผ์, IWebProxy ํ๋ก์)์์
System.Net.ServicePointManager.FindServicePoint์์(Uri ์ฃผ์, IWebProxy ํ๋ก์)
System.Net.HttpWebRequest.get_ServicePoint()์์
RestSharp.Http.ConfigureWebRequest(๋ฌธ์์ด ๋ฉ์๋, Uri URL)
RestSharp.Http.PostPutInternal(String ๋ฉ์๋)์์
RestSharp.Http.AsPost์์(๋ฌธ์์ด httpMethod)
RestSharp.RestClient.DoExecuteAsPost(IHttp http, String ๋ฉ์๋)์์
RestSharp.RestClient.Execute(IRestRequest ์์ฒญ, ๋ฌธ์์ด httpMethod, Func`3 getResponse)์์
๋๋ ๊ทธ๋ค์ด ์ด๊ณผ ์๊ฐ์ ๋ง์ IsXYZ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์๋ง๋ ์ด๋ฌํ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ฑฐ๋ ๋ํํ๊ธฐ ์ ์ ํด๋น ๋ฉ์๋๋ฅผ ํ์ธํด์ผ ํฉ๋๊น?
Windows์์๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ์ฐพ์ ์ ์๋ค๊ณ ์๊ฐํ๋ฏ๋ก Linux์์ ์ด๋ฌํ ํ ์คํธ๋ฅผ ์คํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
@ maciek12305 ์์ธ๋ฅผ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ด๋ป๊ฒ ํด์ ๊ฑฐ๊ธฐ์ ๋๋ฌํ๋์ง ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
@niemyjski Linux์์ ํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐ ๋์ํ์ง๋ง ์ CI ๋น๋๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค. ๋๋ ๋ค์ ์ฃผ์ ์ํ๋ฉด ๋์ค์ Travis๋ฅผ ๋ณผ ๊ฒ์ ๋๋ค.
ํ๋ก์ https://github.com/Azure/azure-iot-sdk-csharp/issues/140์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ข์ต๋๋ค. ๋ฌธ์ ๋ ๊ธฐ๋ณธ ํ๋ก์์ ๋ํ ์ค์ ์ด ๋ ์ง์คํธ๋ฆฌ์์ ๋ก๋๋๊ธฐ ๋๋ฌธ์ .NET Core๊ฐ ๊ธฐ๋ณธ ํ๋ก์๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ํ๋ก์๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์๋ํด์ผ ํ๋ฉฐ ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ .NET Core์์ ์ถฉ๋ํฉ๋๋ค. ์ง๊ธ์ ๋ชจ๋ ๊ฒ์ ์ฐํํ๊ณ ์ง์ ์ด๋ํ๋ "๊ธฐ๋ณธ ํ๋ก์" ํด๋์ค๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ํ๋ก์๋ฅผ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ ConfigureProxy
๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ณตํด์ผ ํฉ๋๋ค.
์ต์ ํจํค์ง๋ฅผ ์ฌ์ฉํด ๋ณด์ญ์์ค: https://www.nuget.org/packages/RestSharp/106.0.0-alpha0281
@niemyjski ์ค์ ๋ก ํตํฉ ํ ์คํธ๋ Mac์์ ์ ํต๊ณผํฉ๋๋ค. ๋ฐ๋ผ์ Linux์์๋ ์๋ํด์ผ ํฉ๋๋ค.
@alexeyzimarev ์ต์ ํจํค์ง๋ Win 10์์ ์๋ํ์ง ์์์ต๋๋ค. ์๋ํ๊ฒ ํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ฝ๋์ ๋ค์์ ํฌํจํ๋ ๊ฒ์ด์์ต๋๋ค.
C#
//https://github.com/dotnet/corefx/commit/6acd74dda7bc4f585d2c4006da4a8b2deb0261ad
var proxy = WebRequest.DefaultWebProxy;
WebRequest.DefaultWebProxy = null;
@mguinness ๊ทธ๋์ proxy
๋ณ์์ ์ด์ ๊ฐ(๋ฌด์์ธ์ง ํ์คํ์ง ์์)์ ์ ์งํ๋ ์ด์ ๋ ๋ฌด์์
๋๊น? ์ฐจ์ด๋ฅผ ๋ง๋ค ์ ์๋ ์ ์ผํ ๋ผ์ธ์
WebRequest.DefaultWebProxy = null;
๋์์ด ๋๋ค๋ฉด ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค.
@alexeyzimarev "WebRequest.DefaultWebProxy: Set๊ฐ ์ด์ Get ์์ด๋ ์๋ํ์ง ์์ต๋๋ค" ์์ ์ฌํญ์ ์ปค๋ฐํ๋ ํ๋ ์์ํฌ์ ๋ฒ๊ทธ๊ฐ ์์์ต๋๋ค.
์ง๊ธ์ ์ดํด. ๊ธฐ๋ณธ ์์ฑ์ ์กฐ์ํ๋ ๋์ ์์ฒญ ํ๋ก์ ์์ฑ์ null๋ก ์ค์ ํ์ฌ ํจํค์ง๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
@mguinness ์๋ก์ด ํจํค์ง๊ฐ ์ถ์๋์์ต๋๋ค. ๋์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
@mavanmanen UWP๋ก ์ด๊ฒ๋ ์๋ํด ๋ณผ ์ ์์ต๋๊น? https://www.nuget.org/packages/RestSharp/106.0.0-alpha0282
๋ฒ์ 106.0.0-alpha0282์์ "์ด ํ๋ซํผ์์๋ ์์ ์ด ์ง์๋์ง ์์ต๋๋ค."๋ผ๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
@remiskaune ์ฝ๋์ ์ด ์ค์ ํฌํจ์ํค๋ ค๊ณ ์๋ํ์ต๋๊น?
var proxy = WebRequest.DefaultWebProxy;
WebRequest.DefaultWebProxy = null;
๊ฐ์ฌ ํด์. ์ด์ ๋ฒ์ 106.0.0-alpha0282์ ์ด ์ค์์ ์๋ํฉ๋๋ค.
๊ทธ๋์ ์ง๋ฌธ์ ๋ด๊ฐ RestSharp ์ฝ๋์ ์ด ์ค์ ํฌํจํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์์ผ๋ฉด ์๋ํ์ง ์๋ ์ด์ ์ ๋๋ค...
์๋ง๋ WebRequest์ ๋ค๋ฅธ ๋ฒ์๊ฐ ์์ต๋๊น? ์ ์ ํด๋์ค์ ๋๊น ์๋๋ฉด ์ธ์คํด์ค์ ๋๊น?
์ํ ์ฑ์ ๋ง๋ค๊ณ ์ํ ์ฑ์์ ๋ค์์ ํ์ธํ์ฌ ์ ์ ์์ต๋๋ค.
WebRequest.DefaultWebProxy
๋ํ RestSharp๊ฐ (๋๋ฒ๊น ๋ชฉ์ ์ผ๋ก) ๋ณด๊ณ ์๋ ๊ฐ์ ๋ณด๋ผ ์ ์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ ธ์ถํฉ๋๋ค. ์:
public IWebProxy GetCurrentProxy() => WebRequest.DefaultWebProxy;
๋์ด ๋ค๋ฅธ์ง ๋ณด์ด์์ฃ ?
@qJake ๋๊ตฐ๊ฐ ๋๋ฅผ ์ํด ๋๋ฒ๊น ํ ์ ์๋ค๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค :) ๋ค์ ์ฃผ๊น์ง ์ด ๋ฌธ์ ์ ๋ํด ์๊ฐ์ ํ ์ ํ ์ ์์ผ๋ฉฐ ์ปจํผ๋ฐ์ค์์ ์ฐ์คํ ์์ ์ ๋๋ค.
WebRequest.DefaultProxy
๋ฅผ null์ ํ ๋นํ์ฌ ํ๋ก์ ๋ฌธ์ ๊ฐ "์์ ๋" ๊ฒฝ์ฐ ์ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์ง๋ง ์ค์ ๋ฌธ์ ๋ ๊ธฐ๋ํ์ง ์์ต๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ .NET Standard ์ด์
๋ธ๋ฆฌ์๋ง ์ถ๊ฐ๋ฉ๋๋ค. .NET Framework ์ด์
๋ธ๋ฆฌ๋ ์ด์ ๊ณผ ๊ฐ์ด ์๋ํด์ผ ํฉ๋๋ค.
https://www.nuget.org/packages/RestSharp/106.0.0-alpha0284
๋ณด๊ณ ๋ ๋ฌธ์ ๊ฐ ์์ผ๋ฉด ๋ฆด๋ฆฌ์ค ์ค๋น๋ฅผ ์์ํ๊ฒ ์ต๋๋ค.
์๋นํ ๊ธ์ ์ ์ธ ๋ฐ์์ ๋๋ค. ๋๋ ์ข ์ ํจํค์ง(Atlassian.JIRA)๊ฐ ์๋ํ๋๋ก ํ๋ ค๊ณ ๋๊ณ ์์๊ณ .NET ํ์ค 2.0์ ๋์์ผ๋ก ํ๋ค๊ณ ๊ฐ์ ํ๋ฉด ๋ชจ๋ ํตํฉ/๋จ์ ํ ์คํธ๊ฐ "๊ทธ๋ฅ ์๋"ํ์ฌ LGTM์ด ๋์์ต๋๋ค.
ํด๋น ๋ ์ค๋ ๋์ ๋ํ https://bitbucket.org/farmas/atlassian.net-sdk/issues/306/support-for-dotnet-core .
์ฐ๋ฆฌ ์๋ฃจ์ ์ ๋ํด ํ ์คํธํ์ผ๋ฉฐ ์ ์๋ํฉ๋๋ค.
.net ํ์ค 2.0 ํ๋ก์ ํธ ๋ฐ .net 4.6.1 ํ๋ก์ ํธ์์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
.net์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ 4.6.1. Visual Studio๊ฐ ๋
ธ๋์ ๋๋ํ๋ก ํ์ํ๋ ๋ค์ ์ฐธ์กฐ๋ฅผ ํ๋ก์ ํธ์์ ๊ฐ์ ธ์ต๋๋ค.
์์คํ
.๋ท.Http
System.Runtime.Serialization.Primitives
System.Security.Cryptography.Algorithms
System.Security.Cryptography.Encoding
System.Security.Cryptography.Primitives
System.Security.Cryptography.X509์ธ์ฆ์
์ด๊ฒ์ด ์ ๊ทธ๋ฐ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๋ฌธ์ ๋ฅผ ์ผ์ผํค์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ํ ๊ฐ์ง ์ฌ์ํ ๋ฌธ์ ๋ clickonce๋ฅผ ์ฌ์ฉํ์ฌ ๋๊ตฌ ์ค ํ๋๋ฅผ ๋ฐฐํฌํ๋ฏ๋ก ๋ชจ๋ ํญ๋ชฉ์ ๊ฐ๋ ฅํ ์ด๋ฆ์ ์ง์ ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ํํ ๋ฒ์ ์ ๊ฐ๋ ฅํ ์ด๋ฆ์ด ์๋๋๋ค. ํจํค์ง์ RestSharpSigned ๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์์ง๋ง .net ํ์ค์ ์ง์ํ๋ ์ํํ ๋ฒ์ ์ ์์ต๋๋ค.
๊ฐ๋ ฅํ ๋ช ๋ช ๋ ๋ฒ์ ๊ณผ ๊ฐ๋ ฅํ์ง ์์ ๋ช ๋ช ๋ ๋ฒ์ ์ ๊ฐ๋ ๊ฒ์ ๊ฐ๋ ฅํ ๋ช ๋ช ๋ ๋ฒ์ ์ ์์กดํ๋ ์ข ์์ฑ๊ณผ ๊ฐ๋ ฅํ์ง ์์ ๋ช ๋ช ๋ ๋ฒ์ ์ ์์กดํ๋ ๋ ๊ฐ์ง ์ข ์์ฑ์ด ์๋ ์ํฉ์์ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค.
์ด ๋์ ์ด์ ๋ธ๋ฆฌ ๋ฒ์ ์ ์ฃผ์ ๋ฒ์ (SemVer์์ ์ฃผ์ ๋ฒ์ ์ ํธํ์ฑ์ ๊นจ๋จ๋ฆด ๋๋ง ๋ณ๊ฒฝ๋จ)์ ์๋ช ํ๊ณ ๊ณ ์ ํ ๋ค์ FileVersion์์ ์ ์ฒด SemVer๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ ์ฌ๋์ด ์ฌ์ฉํ ์ ์๋ ํ๋์ ๋๊ฒ ํจํค์ง(๊ฐ๋ ฅํ ์ด๋ฆ์ด๋ ์๋๋ )๋ฅผ ๊ฐ๊ฒ ๋๋ฉฐ ์ฃผ ๋ฒ์ ๊ณ ์ ์ ๋ฐ์ธ๋ฉ ๋ฆฌ๋๋ ์ ์ด ํ์ํ์ง ์์์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ SemVer๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋ชจ๋ ์ฌ๋์ด ํธํ์ฑ ์ธก๋ฉด์์ ์์ ์ ์์น๋ฅผ โโ์ ํํ ์๊ณ ์์์ ์๋ฏธํฉ๋๋ค.
.net ํ์ค์ผ๋ก ์ ํํ๋ ๊ฒ์ด ์ด ๋ณ๊ฒฝ์ ์ํํ๊ธฐ์ ์ข์ ์๊ธฐ์ผ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ ์ ์ํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ํจํค์ง์ ์๋ช ํ๊ณ ํค๋ฅผ GitHub์ ๋ฃ์ด์ผ ํฉ๋๋ค. .net ํ์ ์๋ฌด ๊ฒ๋ ํด์น์ง ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
๋ณ๊ฒฝ ์ฌํญ์ ๋ณผ ์ ์๋ PR์ด ์์ต๋๊น?
@niemyjski develop
๋ถ๊ธฐ๊ฐ ๋ชจ๋์๊ฒ ํ์๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ๊ธฐ๋ณธ ๋ธ๋์น๋ก๋ ๋ง๋ค์์ต๋๋ค.
@niemyjski "Just"๋ ์ด ๊ฒฝ์ฐ์ ์๋ํ์ง ์์ต๋๋ค. ๋น์ ์ด ๋๊ณ ์ถ๋ค๋ฉด - ๋์์ฃผ์ธ์. Signed
ํ๋ก์ ํธ๋ ๋๊ฒ์ ๋ฒ๊ทธ๋ก ์ธํด ์ ์ฒด ์๋ฃจ์
๋น๋์ ์คํจํ๊ธฐ ๋๋ฌธ์ ์ ๊ฑฐํด์ผ ํ์ต๋๋ค.
https://github.com/dotnet/standard/issues/538
https://github.com/NuGet/Home/issues/6038
๋ฐ๋ผ์ ์์ ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๊ฑฐ๋ ๋ณ๋์ ์๋ฃจ์ ๊ณผ ํ๋ก์ ํธ๋ฅผ ์ถ๊ฐํ ๋ค์ ๋ชจ๋ ํ์ผ์ ์๋์ผ๋ก ํฌํจํด์ผ ํฉ๋๋ค.
@alexeyzimarev ๋ ํ๋์ csproj๋ฅผ ๊ฐ๊ณ ์๋ช ํ๊ณ ๋ฐ์ธ๋ฉ ๋ฆฌ๋๋ ์ ๋ฌธ์ ๋ฅผ ํผํ๊ธฐ ์ํด ์ด์ ๋ธ๋ฆฌ ๋ฒ์ ๋ฒํธ(์ฃผ ๋ฒ์ ์ผ๋ก)๋ฅผ ๊ณ ์ ํฉ๋๋ค. ๋๊ฒ ๋ฐ ํ์ผ ๋ฒ์ ์ ํ์ค SemVer๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด๊ฒ์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ ๋๋ค.
๋ ๊ฐ์ง ๋ฒ์ ์ ์ ์งํด์ผ ํ๋ค๊ณ ์ฃผ์ฅํ๋ ๊ฒฝ์ฐ(์ฌ์ฉ์์๊ฒ ๋ฌธ์ ๊ฐ ๋ฐ์ํจ) ๊ตฌ์ฑ์ ํตํด ๋จ์ผ csproj๋ก ๊ณ์ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค.
๋ ๊ฐ์ง ๋ฒ์ ์ด ์๋ค๋ ๊ฒ์ด ์ผ๋ง๋ ๋ง๊ฐ์ก๋์ง ๊นจ๋ซ๊ธฐ ์ ์ ๋๋ ์๋ ๋ด ์์ ์ ํ๋ก์ ํธ์์ ์ด ์์ ์ ์ํํ์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก StrongName ์์ฑ ๊ทธ๋ฃน์ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ dotnet build -c StrongName์ ์ฌ์ฉํ์ฌ ๋น๋ํฉ๋๋ค.
<PropertyGroup Condition="'$(Configuration)'=='StrongName'">
<PackageId>Jsonics.StrongName</PackageId>
<NetStandardImplicitPackageVersion>1.6.1</NetStandardImplicitPackageVersion>
<PackageVersion>0.1.0-alpha</PackageVersion>
<Optimize>true</Optimize>
<AssemblyOriginatorKeyFile>Jsonics.snk</AssemblyOriginatorKeyFile>
<SignAssembly>true</SignAssembly>
<PublicSign Condition="'$(OS)' != 'Windows_NT'">true</PublicSign>
</PropertyGroup>
์ ๊ธฐํ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ฉด ์ค๋ ๊ธฐ๋ค๋ฆด ์ ์์ต๋๋ค.
์ด๊ฒ์ ๋ชจ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๊ฒ์ ๋๋ค.
๋ ์ด๊ฑฐ ๊ต์ฅํ ์ข์.
์์ฑ ๊ทธ๋ฃน ์ ์์ ๊ฐ์น๊ฐ ์์ต๋๋ค. ๋๋ ๋ ๊ฐ์ ํจํค์ง๋ฅผ ์ ์งํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ํผ๋์ ์ผ์ผํฌ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ํ๋ฆด ์๋ ์์ง๋ง ๊ฐ์ธ์ ์ผ๋ก ๋๋ ์๋ช ์ ํผํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋น์ ์ด ๊ทธ๊ฒ์ ํ์๋กํ๊ธฐ ๋๋ฌธ์ ๋๋ ์๋ช ๋ ์ด์ ๋ธ๋ฆฌ๋ก ํจํค์ง๋ฅผ ๋ง๋ค๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค.
@niemyjski ".net ํ์์ ์ถ์ฒํฉ๋๋ค"์ ๋ํ ๋งํฌ๊ฐ ์์ต๋๊น? ๋๋ ๊ฒฐ๊ณผ์ ๊ทธ๋ค์ด ์ด๊ฒ์ ํ๋ ๊ฒ์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ ๋ง์ด ์์์ผ ํฉ๋๋ค.
๋๋ ๊ทธ๋ค๊ณผ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด๊ณ ๊ทธ๋ค์ด ๋ํ ๊ทธ๊ฒ์ ๊ณต๊ฐ์ ์ผ๋ก ๋งํ๋ค๋ ๊ฒ์ ์๋๋ค.
ํฌ๋ผ๊ณผ ์ฌ์ . ๊ทธ๊ฒ์ ์ผ์ข
์ ๋๋ด์ด๋ฉฐ ์ ๊ฑฐ๋์ด์ผ ํฉ๋๋ค(
https://twitter.com/terrajobst/status/774752534682402817)..
๊ฐ๋ ฅํ ์ด๋ฆ์ ์ด์
๋ธ๋ฆฌ... ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ด์
๋ธ๋ฆฌ์ ์ด๋ฆ์ ๊ฐ๋ ฅํ๊ฒ ์ง์ ํ๊ณ
๋๋ด์ผ๋ก ์๋ช
snk๋ฅผ repo์ ๋จ๊ฒจ ๋์ญ์์ค. 16์ง์ ํธ์ง๊ธฐ๊ฐ ์๋ ์ฌ๋
๊ฐ๋ ฅํ ์ด๋ฆ ์๋ช
์ ์ฐํํ ์ ์์ผ๋ฉฐ ํ์ํ ์ฌ๋์๊ฒ๋ง ํผํด๋ฅผ ์ค๋๋ค.
์ข
์์ฑ์ ์ทจํ์ง ์๋๋ก ํจํค์ง์ ์๋ช
ํฉ๋๋ค. ๋น์ ์ ๊ฐํ ์ฐธ์กฐ ํ ์ ์์ต๋๋ค
์๋ช
๋์ง ์์ ํจํค์ง์์ ์๋ช
๋ ํจํค์ง๋ฅผ ๋ชจ๋ ์๋ช
ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?
์๊ฐ.
https://github.com/FoundatioFx/Foundatio/blob/master/src/Foundatio/Foundatio.csproj
๊ฐ์ฌ ํด์
-๋ธ๋ ์ดํฌ ๋์๋ฏธ์คํค
2017๋
11์ 1์ผ ์์์ผ ์คํ 1์ 30๋ถ Alexey Zimarev ์๋ฆผ @github.com
์ผ๋ค:
@niemyjski https://github.com/niemyjski "The .net
ํ์ด ์ด๊ฒ์ ์ถ์ฒํฉ๋๋ค"? ๊ฒฐ๊ณผ์ โโ๋ฐฉ๋ฒ์ ๋ํด ๋ ๋ง์ด ์์์ผ ํฉ๋๋ค.
์ ํํ ๊ทธ๋ค์ ์ด๊ฒ์ ์ ์ํฉ๋๋ค.โ
๋น์ ์ด ์ธ๊ธ๋์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฐ๋ ๊ฒ์ ๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/restsharp/RestSharp/issues/992#issuecomment-341197289 ,
๋๋ ์ค๋ ๋ ์์๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AA-So94xh-jiEMniw0D2QaGQPgT9zfBfks5syLjDgaJpZM4PLH2m
.
์๊ฒ ์ต๋๋ค. ์๋ช ๋ง ํ๊ฒ ์ต๋๋ค.
์ถ์๋ฉ๋๋ค. https://www.nuget.org/packages/RestSharp/106.0.0
์ฌ๊ธฐ github์์ ๋ฆด๋ฆฌ์ค ํ๊ทธ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. :)
ํ๊ทธ๊ฐ ์ง์ ๋
106.1.0์ ๋ํ ๋ฆด๋ฆฌ์ค ์ ๋ณด๋ ๋ค์์ ์ธ๊ธํฉ๋๋ค.
".NET Core์์ ํ๋ก์ ๋ฌธ์ ์์ "
ํด๋น ์์ ์ฌํญ์ด ๋ฌด์์ ํฌํจํ๋์ง ํ์คํ์ง ์์ง๋ง ํ๋ก์๋ฅผ ์ฌ์ฉํ๋ ๋ฐ ์ฌ์ ํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
.NET Core 2.0 ํฌํธ(.NET Framework 4.6.1์์ ์ ๊ณต) ์ด์ ์๋ ์ด์ ๊ฐ์ด ํด๋ผ์ด์ธํธ๋ฅผ ์ธ์คํด์คํํ์ผ๋ฉฐ ๋งค๋ ฅ์ฒ๋ผ ์๋ํ์ต๋๋ค.
_restClient = new RestClient(DanskStatistikApi)
{
Proxy = WebRequest.GetSystemWebProxy()
};
_restClient.Proxy.Credentials = CredentialCache.DefaultCredentials;
.NET Core 2.0 ํ๋ก์ ํธ์์ ๋์ผํ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ ์๋ต ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
System.PlatformNotSupportedException: Operation is not supported on this platform.
์์ฒญ์ ์คํํ๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
var taskCompletion = new TaskCompletionSource<IRestResponse>();
var asyncHandle = _restClient.ExecuteAsync(request, r => taskCompletion.SetResult(r));
var response = (RestResponse)(await taskCompletion.Task);
์ด๊ฒฌ์๋ ์ฌ๋?
๊ณ ๋ง์,
ํ๋ ๋
.NET Core 2.0์ ๋ํ ์์ ์ฝ๋๊ฐ ์์ต๋๊น?
์คํ ์ถ์ ์ ํ์ธํ๋ฉด ๊ธฐ๋ณธ ํ๋ก์๋ฅผ ๊ฐ์ ธ์ค๋ ค๊ณ ํ ๋ ์ด๊ฒ์ด ์ฐ๋ฆฌ์ ์์ธ๊ฐ ์๋๋ผ .NET ์์ธ์์ ์ ์ ์์ต๋๋ค.
์, ๋ง์ต๋๋ค @alexeyzimarev , ์์ธ๋ ์ค์ ๋ก System.Net.SystemWebProxy.GetProxy์์ ๋ฐ์ํ์ต๋๋ค. ํธ๋ฆฌ๊ฑฐ๋ฅผ ๋นจ๋ฆฌ ๊ฑธ์์ต๋๋ค. :)
๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๋ค๋ฅธ ์ฌ์ฉ์์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํ ํ๋ก์๋ฅผ ๋ช ์์ ์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค.
var restClient = new RestClient(DanskStatistikApi)
{
Proxy = new System.Net.WebProxy("your-proxy-url-goes-here", 8080)
};
restClient.Proxy.Credentials = CredentialCache.DefaultCredentials;
.NET Core 2.0์์ 106.1.0์์ 106.2.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๋๋ฐ ์ด ๋ฉ์์ง๊ฐ ๋ํ๋๊ธฐ ์์ํ์ต๋๋ค.
System.PlatformNotSupportedException: Operation is not supported on this platform.
๋ค๋ฅธ ์ฌ๋๋ค์ด ์ธ๊ธํ๋ฏ์ด ์ด ๋ฉ์์ง๋ System.Net.SystemWebproxy.GetProxy์ ์ํด ์์ฑ๋ ๊ฒ ๊ฐ์ง๋ง ์ ๊ฒฝ์ฐ์๋ ํ๋ก์๋ฅผ ๋ช ์์ ์ผ๋ก ๊ตฌ์ฑํ์ง ์๊ณ ๋ด๋ถ์ ์ผ๋ก ์์ฒด ์์ ์ ์ํํ๊ณ ๋ด๊ฐ ๋ง๋๋ ๋ชจ๋ ์์ฒญ์ โโ๋ํด ์์ธ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋๋ 106.1.0์ ๋ค์ ์กด๊ฒฝํ๊ณ ์ด๊ฒ์ ๊ทธ๊ฒ์ ๊ณ ์ณค์ต๋๋ค. ๊ทธ๋์ ํ๋ก์ ์ค์ ์ด ์ด๋ค ์์ผ๋ก๋ ๋ช ์์ ์ด์ด์ผ ํ๋ 106.2.0์์ ์ด๋ค ๋ณํ๊ฐ ์์ต๋๊น?
@voicebooth ์ด๊ฒ์ #1061์์ ๋ณด๊ณ ๋ฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
.NET Standard 2.0์ ์ง์ํ๋ค๋ ๊ฒ์ ๋ค์ ํ๋ซํผ์ ๋ชจ๋ ์ง์ํ๋ค๋ ์๋ฏธ
์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ shim์ ์ฌ์ฉํ์ฌ RestSharp๋ฅผ ์คํํ ๋ ๋๋ถ๋ถ ์๋ํฉ๋๋ค. HTTP ํธ์ถ์ ํธ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ธฐ๋ณธ ํด๋์ค์ ๋ฌธ์ ๊ฐ ์์ ๋ฟ์ ๋๋ค. HTTP ํด๋ผ์ด์ธํธ๊ฐ ์ HttpClient ๋ก ์ ํ๋ ๊ฒฝ์ฐ ์๋ํด์ผ ํฉ๋๋ค.
๊ฐ์ธ์ ์ผ๋ก ์ฌ๊ธฐ ์ฌ๋ฌด์ค์์ RestSharp๋ฅผ ๊ฝค ๋ง์ด ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ด๋ฏธ ASP.NET Core๋ฅผ ์ฌ์ฉํ์ฌ ์คํ๋๋ ์๋ก์ด ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋ฃจ์ ์ ์์ ์ค์ด๋ฏ๋ก RestSharp๊ฐ ์ต์ .NET์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ๊ฒ์ ๋ณด๊ณ ์ถ์ต๋๋ค. ์๋ก์ด REST ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ํํ ํ์๊ฐ ์๋๋ก ๋ฒ์ ์ ๋ณ๊ฒฝํฉ๋๋ค.