Restsharp: рд╢рд░реАрд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП NullReferenceException рдЬрд┐рдирдХрд╛ рдХреЛрдИ рдирд╛рдо рдирд╣реАрдВ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 5 рдЕрдкреНрд░реИрд▓ 2019  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: restsharp/RestSharp

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

рдореБрдЭреЗ рдХреЛрдИ рдирд╛рдо рдирд╣реАрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдпрд╛ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдЧрд╛рдпрдм рдерд╛ред

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

рдПрдХ NullReferenceException рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

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

  1. рдирд╛рдо рдХреЗ рдмрд┐рдирд╛ рдЕрдиреБрд░реЛрдз рдмреЙрдбреА рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗрдВ

рдпрд╣ RestClient.ConfigureHttp рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рдпрд╣ рдорд╛рди рд░рд╣рд╛ рд╣реИ рдХрд┐ рдирд╛рдо рд╣реИ):

var parameterExists =
                    request.Parameters.Any(p =>
                        p.Name.Equals(defaultParameter.Name, StringComparison.InvariantCultureIgnoreCase)
                        && p.Type == defaultParameter.Type);

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

  • рд╕рдВрд╕реНрдХрд░рдг: 106.6.9.0
  • рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо: .NET рдлреНрд░реЗрдорд╡рд░реНрдХ
  • рд╕рдмрд╕рд┐рд╕реНрдЯрдо:

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


System.NullReferenceException: рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡реГрддреНрддрд┐ рдкрд░ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИред
RestSharp.RestClient рдкрд░ред<>c__DisplayClass172_0.рдмреА__8 (рдкреИрд░рд╛рдореАрдЯрд░ рдкреА)
System.Linq.Enumerable.Any TSource рдкрд░
RestSharp.RestClient.ConfigureHttp(IRestRequest рдЕрдиреБрд░реЛрдз) рдкрд░
RestSharp.RestClient.ExecuteAsync рдкрд░ (IRestRequest рдЕрдиреБрд░реЛрдз, рдХрд╛рд░реНрд░рд╡рд╛рдИ 2 callback, String httpMethod, Func 4 getWebRequest)
RestSharp.RestClient.ExecuteAsync рдкрд░ (IRestRequest рдЕрдиреБрд░реЛрдз, Action`2 рдХреЙрд▓рдмреИрдХ, рд╡рд┐рдзрд┐ httpMethod)

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

@vbenedichuk рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдкреАрдЖрд░ рдЬрдорд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдореЗрдВ рдмрдВрджред рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ!

рдореИрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдбреАрдмрдЧ/рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдкрд╛рдпрд╛ рдХрд┐ рдЖрдкрдХреЗ рдкрд░рд┐рд╡рд░реНрддрди рдиреЗ рдПрдХ рдмрдЧ рдкреЗрд╢ рдХрд┐рдпрд╛ред рд▓рд╛рдЗрди рджреЗрдЦреЗрдВ https://github.com/restsharp/RestSharp/blob/a8a9f3473be30317fc449c1c47e3f3cd74e8bab4/RestSharp/RestRequest.cs#L335

рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд░реЗрдЦрд╛ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдирдпрд╛ рдХрд░ рд░рд╣реА рд╣реИ рд▓реЗрдХрд┐рди рд╕рддреНрдпрд╛рдкрди рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╛рдо рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ:

https://github.com/restsharp/RestSharp/blob/a8a9f3473be30317fc449c1c47e3f3cd74e8bab4/RestSharp/Parameter.cs#L28 -L35

https://github.com/restsharp/RestSharp/blob/a8a9f3473be30317fc449c1c47e3f3cd74e8bab4/RestSharp/Validation/Ensure.cs#L13 -L17

рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛:
https://github.com/restsharp/RestSharp/pull/1337

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╢рд░реАрд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХрд┐рд╕реА рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмреЗрд╣рддрд░ рдлрд┐рдХреНрд╕ рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ рдХрд┐ рдирд╛рдо рдЙрди рдкреИрд░рд╛рдореАрдЯрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЯрд╛рдЗрдк рдмреЙрдбреА рдХреЗ рдирд╣реАрдВ рд╣реИрдВред

рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ред

рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкрдХрдбрд╝рд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд░реЗрд╕реНрдЯрд╢рд░реНрдк рдХреЛ рдмреЗрд╣рддрд░ рдврдВрдЧ рд╕реЗ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рдЗрд╕ рд╕рдордп nuget рдкреИрдХреЗрдЬ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рд╣рд╛рдБ, рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдЕрднреА рддрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред рдореИрдВрдиреЗ рдмреЗрд╣рддрд░ рдПрд╕рд┐рдВрдХ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░реА рдореЗрдВ рдХреБрдЫ рдФрд░ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдФрд░ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА

рдЗрд╕реЗ рдХрдм рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 106.7.0 рд╣реИ рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗрд╡рд▓ 106.6.10 рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВ?

106.9 . рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб

рдирд╡реАрдирддрдо рдмрд┐рд▓реНрдб рдПрд▓реЗрдХреНрд╕реА рдореЗрдВ рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд╣реБрдИ рд╣реИ

@ronaldfeb рдореИрдВрдиреЗ рдЙрд╕ рдкреАрдЖрд░ рдХреЛ рдорд░реНрдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд┐рд╕рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рдерд╛, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@alexeyzimarev рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╕ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреЛрд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╢рд░реАрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИред рд╢рд░реАрд░ рдХреЗ рд▓рд┐рдП рдирд╛рдо рдкреИрд░рд╛рдореАрдЯрд░ рд╢реВрдиреНрдп рд╣реИред

        public async Task<Result> postAsync(object objectToUpdate, string apiEndPoint)
        {
            Result result = new Result();

            try
            {
                var client = new RestClient(apiEndPoint);

                var request = new RestRequest(apiEndPoint, Method.POST);
                request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };
                request.RequestFormat = DataFormat.Json;
                request.AddJsonBody(objectToUpdate);
                var response = await client.ExecuteTaskAsync(request);
                //var response = client.ExecuteDynamic(request);


                if (response.StatusCode != HttpStatusCode.Created)
                {

                    Console.WriteLine("Access Token cannot obtain, process terminate");
                    result.Success = false;
                    result.Message = response.ErrorMessage;
                    return result;

                }

                result.Success = true;
                result.Message = "OK";
                return result;

            }
            catch
            {
                throw;
            }

            // await Audit(_settings, new AuditEntry() { Action = EnumTypes.Actions.Add.ToString(), Area = "Testcase", AuditId = obj.key, DatetimeStamp = DateTime.Now, ClientId = userId, NewValue = obj, OldValue = null });
        }

рдЬреЗрд╕рди рдмреЙрдбреА:

{
  "smartloadId": "string",
  "clientReference": "string",
  "smsRecipientMsisdn": "string",
  "deviceId": "string",
  "productId": 0,
  "amount": 0,
  "pinless": true,
  "sendSms": true,
  "orderRefID": 0
}

рдХреНрдпрд╛ рдЖрдк рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд╕рд╣рд┐рдд рдЕрдкрд╡рд╛рдж рд╡рд┐рд╡рд░рдг рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@alexeyzimarev (106.9 рдореЗрдВ рддрдп)
рдореЗрд░рд╛ рд░реЗрд╕реНрдЯрд╢рд░реНрдк рд╕рдВрд╕реНрдХрд░рдг (106.10.1)

рд╕рджрд╕реНрдпрд╕рд╛рдЗрдирдЕрдк рд╕рд╛рдЗрдирдЕрдк = рдирдпрд╛ рд╕рджрд╕реНрдп рд╕рд╛рдЗрдирдЕрдк ()
{
рдИрдореЗрд▓ = "рдЯреЗрд╕реНрдЯ",
рдЙрдкрдирд╛рдо = "рдЯреЗрд╕реНрдЯ",
};
RestRequest req = рдирдпрд╛ RestRequest ("/ my/resource", Method.POST);

        req.AlwaysMultipartFormData = true;
        req.AddHeader("content-Type", "multipart/form-data");
        req.AddJsonBody(signup);

рд▓реЗрдХрд┐рди -> req.Parameters[1].Name = рдЦрд╛рд▓реА рд╣реИред

рдХреИрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрдм рдореИрдВ req.AddJsonBody ()

image

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рд╣реИ
рдХреЛрдб

string url = "http://????????????????????????????/reports/new/Report2_11_1?page=reports/new/Report2_11_1&rep_nd=04.03.2020&rep_nd_h=18&rep_nd_min=00&rep_kd=05.03.2020&rep_kd_h=18&rep_kd_min=00&&rep_nd_fact_time=&rep_nd_h_fact_time=00&rep_nd_min_fact_time=00&rep_kd_fact_time=&rep_kd_h_fact_time=00&rep_kd_min_fact_time=00&train_registration=1&kind_rep_type=1,2&four_report_save=4,5&usw=1007&ush=1108";
CookieContainer container = new CookieContainer();
RestClient client = new RestClient();
client.CookieContainer = container;

RestRequest request = new RestRequest(url, Method.GET);

рддреНрд░реБрдЯрд┐

Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'name')
   at RestSharp.RestRequest..ctor(String resource, Method method, DataFormat dataFormat)
   at RestSharp.RestRequest..ctor(String resource, Method method)

рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдХреЛрд╢рд┐рд╢ рдХреА: 106.10.1, 106.10.0╨▒, 106.9.0
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреВрдЖрд░рдПрд▓ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

"http://????????????????????????????/reports/new/Report2_1_1?page=reports/new/Report2_1_1&rep_nd=01.01.2019&rep_nd_h=0
0&rep_nd_min=00&rep_kd=05.03.2019&rep_kd_h=23&rep_kd_min=59&rep_status=0,1,2,4,5,6,7,10&state_among_road=close&rep_stat
us_among_road=0,1,2,4,6,7,10&rep_flg_add_inv=0&rep_flg_add_inv_among=0&rep_conseq=null&rep_character=null&kind_rep_type
=3&rep_service=null&rep_subdivision=null&rep_nod0=null&rep_place0=null&rep_place0_id=null&rep_stan0_1_id=null&rep_stan0
_2_id=null&rep_place0_value=null&rep_object=null&nod_place=null&rep_asu=0,1,2,5,7,11,12,14,15,20,21&rep_asu_dop=1:1&flg
_alien_service=2&usw=1578&ush=705"

@veliev рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдПрдХ рдЕрд▓рдЧ рдЦреЛрд▓реЗрдВ

рдареАрдХ рд╣реИ, рдирд╛рдо рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдмреЙрдбреА рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдореБрджреНрджрд╛ _fixed_ рд╣реИред рдпрджрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рдХреЗ рд╢реВрдиреНрдп рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ рдЖрдкрдиреЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ (рдкреИрд░рд╛рдореАрдЯрд░ рдХреНрд▓рд╛рд╕ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рд░рд╣рд┐рдд рдХрдиреНрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдХреЛ рд╣рдЯрд╛рдПрдВ) рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛?
рдореИрдВрдиреЗ 106.2.1 рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдпрджрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рд╣реА рдкреНрд░рдореБрдЦ (106) рд╣реИ, рддреЛ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛ рдирд╣реАрдВ!

@bsalmeida рдЙрд╕ рддрд░рд╣ред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд░реНрдЧ рдЖрдВрддрд░рд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдо рдРрд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдЬреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдпрд╣рд╛рдВ рдкреЛрд╕реНрдЯ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рд╣реЛрддреА рд╣реИрдВред

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

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

nilsga picture nilsga  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

weswitt picture weswitt  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

abishekrsrikaanth picture abishekrsrikaanth  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guevelamax15000 picture guevelamax15000  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tomgallard picture tomgallard  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ