Restsharp: рдкреЛрд░реНрдЯ рдХреЛ рд╣реЛрд╕реНрдЯ рд╣реЗрдбрд░ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рдлрд╝рд░ре░ 2018  ┬╖  35рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: restsharp/RestSharp

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

Restsharp рдХреЛ рд╣реЛрд╕реНрдЯ рд╣реЗрдбрд░ рд╡реИрд▓реНрдпреВ рдореЗрдВ рдкреЛрд░реНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╣реЛрд╕реНрдЯ рд╣реЗрдбрд░ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдПред
https://github.com/minio/minio-dotnet/pull/212 Restsharp.Netcore (.netcore рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЧреИрд░ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдВрд╕реНрдХрд░рдг) рдХреЗ рдмрдЬрд╛рдп Restsharp 106.2.1 рдореЗрдВ рд▓рд╛ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмреЗрдореЗрд▓ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВ рдХреНрдпреЛрдВрдХрд┐ рдорд┐рдиреАрдУ рдбреЙрдЯрдиреЗрдЯ рдПрд╕рдбреАрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╕реНрдЯрдо рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХрд░реНрддрд╛ рдЖрдИрдкреА: рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ "рд╣реЛрд╕реНрдЯ" рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрдирд╛рддрд╛ рд╣реИред рд░реЗрд╕реНрдЯрд╢рд╛рд░реНрдк httpclient рдкреЛрд░реНрдЯ рдХреЛ рдЕрд▓рдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ рдЯреНрд░реЗрд╕ рд╣реЛрд╕реНрдЯ рд╣реЗрдбрд░ рд╡реИрд▓реНрдпреВ рдореЗрдВ рдХреЗрд╡рд▓ рдЖрдИрдкреА рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

Restsharp 106.2.1 . рдореЗрдВ рдкреЛрд░реНрдЯ рдХреЛ "рд╣реЛрд╕реНрдЯ" рд╣реЗрдбрд░ рд╡реИрд▓реНрдпреВ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо

  1. рдорд┐рдирд┐рдпреЛ-рдбреЙрдЯрдиреЗрдЯ рдПрд╕рдбреАрдХреЗ рдХреНрд▓реЛрди рдХрд░реЗрдВ рдФрд░ рдкреИрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ https://github.com/minio/minio-dotnet/pull/212
    рдорд┐рдирд┐рдУ-рдбреЙрдЯрдиреЗрдЯ рдЧрд┐рдЯ:(02cbcb5) рдбреЙрдЯрдиреЗрдЯ рд░рд┐рд╕реНрдЯреЛрд░;рдбреЙрдЯрдиреЗрдЯ рдмрд┐рд▓реНрдб
    рдорд┐рдирд┐рдУ-рдбреЙрдЯрдиреЗрдЯ рдЧрд┐рдЯ:(02cbcb5) тЬЧ рдбреЙрдЯрдиреЗрдЯ рд░рди --рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд┐рдВрдкрд▓рдЯреЗрд╕реНрдЯ
    2.
    3.

рд╡рд┐рд╢реЗрд╖ рд╡рд┐рд╡рд░рдг

рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕

minio-dotnet client side trace
---------------------------------------
Full URL of Request http://192.168.1.157:9000/
Request completed in 90.1376 ms, Request: {
  "resource": "/",
  "parameters": [
    {
      "name": "x-amz-content-sha256",
      "value": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
      "type": "HttpHeader"
    },
    {
      "name": "Host",
      "value": "192.168.1.157:9000",
      "type": "HttpHeader"
    },
    {
      "name": "x-amz-date",
      "value": "20180221T205958Z",
      "type": "HttpHeader"
    },
    {
      "name": "Authorization",
      "value": "AWS4-HMAC-SHA256 Credential=minio/20180221/us-east-1/s3/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=db0fbcc9aa66975a530a2621962a87787559289a218da881420686263da862df",
      "type": "HttpHeader"
    },
    {
      "name": "Accept",
      "value": "application/json, application/xml, text/json, text/x-json, text/javascript, text/xml",
      "type": "HttpHeader"
    }
  ],
  "method": "GET",
  "uri": "http://192.168.1.157:9000/"
}, Response: {
  "statusCode": 403,
  "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message><Key></Key><BucketName></BucketName><Resource>/</Resource><RequestId>3L137</RequestId><HostId>3L137</HostId></Error>",
  "headers": [
    {
      "Name": "Accept-Ranges",
      "Value": "bytes",
      "Type": 3,
      "ContentType": null
    },
    {
      "Name": "Server",
      "Value": "Minio/DEVELOPMENT.GOGET, (linux; amd64)",
      "Type": 3,
      "ContentType": null
    },
    {
      "Name": "Vary",
      "Value": "Origin",
      "Type": 3,
      "ContentType": null
    },
    {
      "Name": "X-Amz-Request-Id",
      "Value": "151572E9DCF94747",
      "Type": 3,
      "ContentType": null
    },
    {
      "Name": "Date",
      "Value": "Wed, 21 Feb 2018 20:59:58 GMT",
      "Type": 3,
      "ContentType": null
    },
    {
      "Name": "Transfer-Encoding",
      "Value": "chunked",
      "Type": 3,
      "ContentType": null
    },
    {
      "Name": "Content-Type",
      "Value": "application/xml",
      "Type": 3,
      "ContentType": null
    }
  ],
  "responseUri": "http://192.168.1.157:9000/",
  "errorMessage": null
}
I'm not handling the Minio.Exceptions.MinioException.

Unhandled Exception: System.AggregateException: One or more errors occurred. (Minio API responded with message=The request signature we calculated does not match the signature you provided. Check your key and signing method.) (Minio API responded with message=The request signature we calculated does not match the signature you provided. Check your key and signing method.) ---> Minio.Exceptions.MinioException: Minio API responded with message=The request signature we calculated does not match the signature you provided. Check your key and signing method.
   at Minio.MinioClient.ParseError(IRestResponse response) in /home/kris/code/minio-dotnet/Minio/MinioClient.cs:line 475
   at Minio.MinioClient.<>c.<.ctor>b__78_0(IRestResponse response) in /home/kris/code/minio-dotnet/Minio/MinioClient.cs:line 70
   at Minio.MinioClient.HandleIfErrorResponse(IRestResponse response, IEnumerable`1 handlers, DateTime startTime) in /home/kris/code/minio-dotnet/Minio/MinioClient.cs:line 502
   at Minio.MinioClient.<ExecuteTaskAsync>d__81.MoveNext() in /home/kris/code/minio-dotnet/Minio/MinioClient.cs:line 349
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Minio.MinioClient.<ListBucketsAsync>d__0.MoveNext() in /home/kris/code/minio-dotnet/Minio/ApiEndpoints/BucketOperations.cs:line 52
   --- End of inner exception stack trace ---
   at System.AggregateException.Handle(Func`2 predicate)
   at SimpleTest.Program.Main(String[] args) in /home/kris/code/minio-dotnet/SimpleTest/Program.cs:line 47

Server side trace: 
--------------------------
тЮЬ  minio git:(debugnet) minio server ~/ex                               
Drive Capacity: 6.9 GiB Free, 221 GiB Total

Endpoint:  http://192.168.1.157:9000  http://172.17.0.1:9000  http://172.18.0.1:9000  http://172.19.0.1:9000  http://172.20.0.1:9000  http://127.0.0.1:9000
AccessKey: minio 
SecretKey: minio123 

Browser Access:
   http://192.168.1.157:9000  http://172.17.0.1:9000  http://172.18.0.1:9000  http://172.19.0.1:9000  http://172.20.0.1:9000  http://127.0.0.1:9000

Command-line Access: https://docs.minio.io/docs/minio-client-quickstart-guide
   $ mc config host add myminio http://192.168.1.157:9000 minio minio123

Object API (Amazon S3 compatible):
   Go:         https://docs.minio.io/docs/golang-client-quickstart-guide
   Java:       https://docs.minio.io/docs/java-client-quickstart-guide
   Python:     https://docs.minio.io/docs/python-client-quickstart-guide
   JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
   .NET:       https://docs.minio.io/docs/dotnet-client-quickstart-guide
signed headers .... map[X-Amz-Content-Sha256:[e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855] X-Amz-Date:[20180221T205638Z] Host:[192.168.1.157]]

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдЗрдП рдЗрд╕реЗ рдмрдврд╝рд╛рдПрдВ!

рд╕рднреА 35 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЗрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

https://github.com/poornas/restsharp-test - рдпрд╣ рдорд┐рдиреА рд╕рд░реНрд╡рд░ рдкрд░ рд▓рд┐рд╕реНрдЯ рдмрдХреЗрдЯ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрд╕реНрдЯрд╢рд░реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдирдВрдЧреЗ рд╣рдбреНрдбрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИред рдпрд╣ рдПрдХ рдХрд╕реНрдЯрдо рдкреНрд░рдорд╛рдгрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ - рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмреЗрдореЗрд▓ рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд░реЗрд╕реНрдЯрд╢рд╛рд░реНрдк рдкрд░ рдкрд╛рд╕ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╕рд░реНрд╡рд░ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреЛрд░реНрдЯ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕реЗ рджреЗрдЦреВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж!

@alexeyzimarev рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

@alexeyzimarev , рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрднреА рддрдХ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓рд╛ рд╣реИ? рдзрдиреНрдпрд╡рд╛рдж

рдЕрдм рдЬрд╛рдБрдЪ рд░рд╣реЗ рд╣реИрдВ

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд░реЗрдкреНрд░реЛ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдФрд░ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ:

  "parameters": [
...
    {
      "name": "Host",
      "value": "play.minio.io:9000",
      "type": "HttpHeader"
    }

рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдареАрдХ рд╣реИрдВ рд▓реЗрдХрд┐рди рдорд╛рди рд╕рд░реНрд╡рд░ рдкрд░ рдареАрдХ рд╕реЗ рдирд╣реАрдВ рднреЗрдЬрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?

@alexeyzimarev , рдпрд╣ рд╕рд╣реА рд╣реИ - рдКрдкрд░ рдЬреЛ рдЯреНрд░реЗрд╕ рдЖрдк рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ executeAsync рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реИред рдЬрдм ExecuteAsync рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ Restsharp рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдзрд┐ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдо url рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╢реАрд░реНрд╖рд▓реЗрдЦ рд╕реЗрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ: рдХрд╕реНрдЯрдо рдкреНрд░рдорд╛рдгрдХ рдореЗрдВ рдкреЛрд░реНрдЯ ред рд╕рд░реНрд╡рд░ рд╕реЗ рдЯрдХрд░рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рдСрдереЗрдВрдЯрд┐рдХреЗрдЯ () рдХреЙрд▓ рдХреЗ рдмрд╛рдж рд░реЗрд╕реНрдЯрд╢рд░реНрдк рджреНрд╡рд╛рд░рд╛ рдкреЛрд░реНрдЯ рдХреЛ рдЫреАрди рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рд╣рдо рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕рдЦреНрдд рдЕрд╡рд░реБрджреНрдз рд╣реИрдВред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдЗрд╕реЗ рдЕрднреА рддрдХ рджреЗрдЦрдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛ред рдпрджрд┐ рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧ рдЗрд╕реЗ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдШрдВрдЯрд╛ рдмрд┐рддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдЗрд╕ рдкрд░ рдореЗрд░реА рддреНрд╡рд░рд┐рдд рдирдЬрд░ рдереАред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ, рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд░реЗрд╕реНрдЯрд╢рд░реНрдк рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ HttpWebRequest рдореЗрдВ System.Net рд╣реИ!

рдЬрдм рддрдХ RestSharp рдиреЗ System.Net рдХреЛ рдЕрдиреБрд░реЛрдз рд╕реМрдВрдк рджрд┐рдпрд╛, рддрдм рддрдХ Host рд╕рдВрдкрддреНрддрд┐ (рдЙрд░реА) рдореЗрдВ HttpWebRequest рдореЗрдВ рдЕрднреА рднреА рдкреЛрд░реНрдЯ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм .SendRequest() рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрд╕реНрдЯ рд╣реЗрдбрд░ рдХреЗрд╡рд▓ рдпреВрдЖрд░рдЖрдИ рд╣реЛрд╕реНрдЯ рджреНрд╡рд╛рд░рд╛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣реЛрд╕реНрдЯ рдФрд░ рдкреЛрд░реНрдЯ рдирд╣реАрдВ ред

рдпрд╣рд╛рдБ рдЙрдкрд░реЛрдХреНрдд рд▓рд┐рдВрдХ рдкрд░ рдореЗрд░реЗ рдбрд┐рдмрдЧрд░ рдХрд╛ рдПрдХ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╣реИред
screen shot 2018-03-22 at 11 22 52 am

рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ HTTP рдпреБрдХреНрддрд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдХреГрдкрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдбреЙрдЯрдиреЗрдЯ рдврд╛рдВрдЪреЗ рдореЗрдВ рдХрднреА рдХреЛрдИ рдмрдЧ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рдФрд░ рдЖрдорддреМрд░ рдкрд░ рдЬрдм рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ - рдореИрдВрдиреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЕрдиреНрдпрдерд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрд░рдПрдлрдПрдХреНрд╕ рд░реЗрдкреЛ рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ рдХрджрдо рд╣реЛрдЧрд╛?

рдЖрдЗрдП рдЗрд╕реЗ рдмрдврд╝рд╛рдПрдВ!

рд╣реЛ рдЧрдпрд╛ - рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡реИрдз рд╣реИ рдЬрд╣рд╛рдВ рдмрдЧ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдмрд╕ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ - рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╣рд╛рд▓ рдХреЗ .NET рдХреЛрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рд╣реИ? (2.1) рдпрд╛ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рд░ (2.0) рдХреЗ рд╕рд╛рде? рдпрд╛ .NET Framework рдмрдирд╛рдо .NET Core рдХрд╛ рдЕрдВрддрд░, рдпрд╛ OS Windows рдмрдирд╛рдо Linux рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░? ("рдкрддрд╛ рдирд╣реАрдВ" рдареАрдХ рдЬрд╡рд╛рдм рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж!)

@karelz рдЯреАрдмреАрдПрдЪ рдореИрдВрдиреЗ рдПрдХ рдФрд░ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреЗрдЦрд╛ рддрд╛рдХрд┐ рдореИрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рд╕рдХреВрдВ ЁЯШЖ рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ "рдкрддрд╛ рдирд╣реАрдВ" рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдореИрдХреЛрдЬрд╝ рдкрд░ .NET рдХреЛрд░ 2.0 рдкрд░ рдЖрдЬрдорд╛рдпрд╛ рд╣реИред рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗрд╡рд▓ рд╣рд╛рд▓ рд╣реА рдореЗрдВ (рдорд╣реАрдиреЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдХреЗрд╡рд▓ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдкрд░ .NET рдХреЛрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ @alexeyzimarev рдХреЛ рдФрд░ рдкрддрд╛ рд╣реЛ?

рдареАрдХ рд╣реИ, рддреЛ рдЖрдк рдХрдо рд╕реЗ рдХрдо рдЬрд╛рдирддреЗ рд╣реИрдВ: рдпрд╣ .NET Framework (Windows) рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ .NET Core 2.0 (Mac) рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ?

рдирд╣реАрдВ - рдЕрдиреНрдп рдереНрд░реЗрдбреНрд╕ рд╕реЗ рдореИрдВ рдХрд╣реВрдБрдЧрд╛ рдХрд┐ рдпрд╣ .NET Core 2.0 рдкрд░ рд╕рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЛ рд╡рд┐рдлрд▓ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ .NET Framework рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред

@karelz рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдзрд╛рд░рдгрд╛ рд╕рд╣реА рд╣реЛрдЧреАред рдореИрдВ рдЕрднреА рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ рд╕реЗ .net рдХреЛрд░/рдорд╛рдирдХ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рдФрд░ рдлрд┐рд░ рдкрд░реАрдХреНрд╖рдг рдЯреВрдЯ рдЧрдПред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ 1.x рд╕реЗ рдкреНрд░рддрд┐рдЧрдорди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдХреЗрд╡рд▓ .net рдорд╛рдирдХ 2.0 рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ

@niemyjski рдкреБрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЗрд╕ рд╕рдордп рдЗрддрдиреА рд╣реА рдЬрд╛рдирдХрд╛рд░реА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдореИрдВ рдХреЗрд╡рд▓ рдЬреНрдЮрд╛рдд рддрдереНрдпреЛрдВ/рдЕрдиреБрднрд╡реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЦреБрд▓рд╛ рд░рдЦ рд░рд╣реЗ рд╣реИрдВ?

CoreFx рдореЗрдВ рдлрд┐рдХреНрд╕ PR рдореЗрдВ рд╣реИ: https://github.com/dotnet/corefx/pull/28375

рд╣рд╛рдВ :)

рдзрдиреНрдпрд╡рд╛рдж
-рдмреНрд▓реЗрдХ рдиреАрдореАрдЬреНрд╕реНрдХреА

рдЧреБрд░реБ, 22 рдорд╛рд░реНрдЪ, 2018 рдЕрдкрд░рд╛рд╣реНрди 3:57 рдмрдЬреЗ, рд╕реАрдЬрд╝рд░ рдЪреЗрди рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

CoreFx рдореЗрдВ рд╕реБрдзрд╛рд░ PR рдореЗрдВ рд╣реИ: dotnet/corefx#28375
https://github.com/dotnet/corefx/pull/28375

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/restsharp/RestSharp/issues/1085#issuecomment-375454963 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AA-So67a2QfPq72jMHNxaSCBhDXiWXOMks5thBAygaJpZM4SOXLx
.

рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдерд╛ рдХрд┐ рд╣рдо HttpClient рдкрд░ рд╕реНрд╡рд┐рдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ рдЬреЛ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИ
рдФрд░ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ? рдпрд╣ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛?

рдзрдиреНрдпрд╡рд╛рдж
-рдмреНрд▓реЗрдХ рдиреАрдореАрдЬреНрд╕реНрдХреА

рд╢реБрдХреНрд░, 23 рдорд╛рд░реНрдЪ, 2018 рдХреЛ рд╕реБрдмрд╣ 7:14 рдмрдЬреЗ, рдмреНрд▓реЗрдХ рдиреАрдореАрдЬреНрд╕реНрдХреА [email protected]
рд▓рд┐рдЦрд╛ рдерд╛:

рд╣рд╛рдВ :)

рдзрдиреНрдпрд╡рд╛рдж
-рдмреНрд▓реЗрдХ рдиреАрдореАрдЬреНрд╕реНрдХреА

рдЧреБрд░реБ, 22 рдорд╛рд░реНрдЪ, 2018 рдЕрдкрд░рд╛рд╣реНрди 3:57 рдмрдЬреЗ, рд╕реАрдЬрд╝рд░ рдЪреЗрди рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

CoreFx рдореЗрдВ рд╕реБрдзрд╛рд░ PR рдореЗрдВ рд╣реИ: dotnet/corefx#28375
https://github.com/dotnet/corefx/pull/28375

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/restsharp/RestSharp/issues/1085#issuecomment-375454963 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AA-So67a2QfPq72jMHNxaSCBhDXiWXOMks5thBAygaJpZM4SOXLx
.

@niemyjski рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд░реЗрд╕реНрдЯрд╢рд░реНрдк рдХрд╛ рд╕реНрд╡рд┐рдЪ HttpClient рдХреЗ рдмрдЬрд╛рдп HttpWebRequest рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?

рд╣рд╛рдВ :)

рдзрдиреНрдпрд╡рд╛рдж
-рдмреНрд▓реЗрдХ рдиреАрдореАрдЬреНрд╕реНрдХреА

рд╢реБрдХреНрд░, рдорд╛рд░реНрдЪ 23, 2018 рдХреЛ рд╕реБрдмрд╣ 9:22 рдмрдЬреЗ, рдПрд▓реЗрдХреНрд╕реА рдЬрд╝рд┐рдорд╛рд░реЗрд╡ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

@niemyjski https://github.com/niemyjski рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ
RestSharp HttpWebRequest рдХреЗ рдмрдЬрд╛рдп HttpClient рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/restsharp/RestSharp/issues/1085#issuecomment-375680769 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AA-So0cbK66_Nq-MRdk0xwdb7sLPSGUoks5thQUUgaJpZM4SOXLx
.

@niemyjski рд╕рд╡рд╛рд▓ рдПрдХ _or_ рджреВрд╕рд░рд╛ рдерд╛, _yes_ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╛рдиреНрдп рдЙрддреНрддрд░ рдирд╣реАрдВ рд╣реИ :)

рдпрджрд┐ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд░реЗрд╕реНрдЯрд╢рд░реНрдк рдХреЛ HttpClient рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдореИрдВ рдЗрд╕рдХреЗ рд╕рдорд░реНрдердХ рд╣реВрдВ рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдереА рдХрд┐ рд░реЗрд╕реНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдХрд╛рдо рдерд╛ред

рд╣рд╛рдВ, рд╣рдореЗрдВ рдПрдЪрдЯреАрдкреА рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕рдореЗрдВ рдЬрд┐рддрдирд╛ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рд╣реИ, рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рд╣реИ рдФрд░ рдПрдХ рдЖрдзреБрдирд┐рдХ рдПрдкреАрдЖрдИ рдЬрд┐рд╕реЗ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рд╡рд╣ рд╣рд░ рдЬрдЧрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рдо рдХреБрдЫ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рдореБрдЦ рдХреЛ рдЯрдХреНрдХрд░ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ :)

рд╣рд╛рдБ, рдореИрдВ рдпрд╣ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдЕрдХреЗрд▓реЗ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдБред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрд╛рдо рдерд╛ред рдореИрдВ Async рдХреЙрд▓ рдХреЛ рднреА рд╣рдЯрд╛ рджреВрдВрдЧрд╛ рдЬреЛ рдХреЙрд▓рдмреИрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИрдВред рдЬрд╛рд░реА рд░рдЦреЗрдВ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ 2.1 рдореЗрдВ рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рд╣рдореЗрдВ рдПрдХ рд░рд╛рдд рдЬрд╛рд░реА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдирдП рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди 2 рдмрд┐рдЯреНрд╕ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ рдФрд░ рд╣рдо рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рдо рд╣реИ рдЬреЛ рд╣рдо <2.1 рд░рдирдЯрд╛рдЗрдо/рд▓рд┐рдмрд╛рд╕ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ

рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рдХреЛ рд╕рдВрджрд░реНрдн 2.1 рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореБрдЭреЗ рдкрд╣рд▓реЗ рд░рд┐рд▓реАрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? 2.1 рдЖрд░рдЯреАрдПрдо рдкреИрдХреЗрдЬ рдирдЧреЗрдЯ рдкрд░ рд╣реИрдВред

рддреЛ, рдЖрдкрдХреЛ 2.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рд╣реИ?

@niemyjski 20 рдЕрдкреНрд░реИрд▓ рдХреА рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИред рдореБрдЭреЗ рдХрд╣реАрдВ рдХреБрдЫ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп .NET рдорд╛рдирдХ 2.0 рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рд╣реИред рддреНрд░реБрдЯрд┐ .NET Core 2.0 рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдПрдХ рдмрдЧ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЬреИрд╕реЗ рд╣реА рдЖрдк .NET Core 2.1 рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рднреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦреЗрдж рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕