์ด๋ฆ์ ์ถ๊ฐํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ด ๋๋ฝ๋์๋ค๋ ์ค๋ฅ ๋ฉ์์ง๊ฐ ๋ ๋ช ํํด์ง๋๋ค.
NullReferenceException์ด ๋ฐ์ํฉ๋๋ค.
์ด๊ฒ์ RestClient.ConfigureHttp์ ๋ฌธ์ ์ฌ์ผ ํฉ๋๋ค(์ด๋ฆ์ด ์๋ค๊ณ ๊ฐ์ ํจ).
var parameterExists =
request.Parameters.Any(p =>
p.Name.Equals(defaultParameter.Name, StringComparison.InvariantCultureIgnoreCase)
&& p.Type == defaultParameter.Type);
System.NullReferenceException: ๊ฐ์ฒด ์ฐธ์กฐ๊ฐ ๊ฐ์ฒด์ ์ธ์คํด์ค๋ก ์ค์ ๋์ง ์์์ต๋๋ค.
RestSharp.RestClient.<>c__DisplayClass172_0์์.
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)
@vbenedichuk PR์ ์ ์ถํ๊ณ ์ถ์ง ์์ ์ด์ ๊ฐ ์์ต๋๊น?
๋ค์ ๋ฆด๋ฆฌ์ค์์ ๋ซํ๋๋ค. ํ๊ธฐ์ ์ธ ๋ณํ!
๋ฌธ์ ๋ฅผ ๋๋ฒ๊ทธ/์์ ํ๋ ค๊ณ ์๋ํ์ง๋ง ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. https://github.com/restsharp/RestSharp/blob/a8a9f3473be30317fc449c1c47e3f3cd74e8bab4/RestSharp/RestRequest.cs#L335 ๋ผ์ธ
๋ผ์ธ์ด ๊ฐ์ฒด๋ฅผ ์๋ก ์์ฑํ์ง๋ง ์ ํจ์ฑ ๊ฒ์ฌ์ ํ์ํ ์ด๋ฆ์ ์ ๊ณตํ์ง ์๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ ์ถ๋ ํ ๋ฆฌํ์คํธ:
https://github.com/restsharp/RestSharp/pull/1337
๋ช ๊ฐ์ง ํ ์คํธ๊ฐ ๋๋ฝ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ค์ ๋ก ๋ณธ๋ฌธ ๋งค๊ฐ๋ณ์์๋ ์ด๋ฆ์ด ํ์ํ์ง ์์ต๋๋ค. ๋ ๋์ ์์ ์ฌํญ์ ๋ณธ๋ฌธ ์ ํ์ด ์๋ ๋งค๊ฐ ๋ณ์์ ๋ํด ์ด๋ฆ์ด ๋น์ด ์์ง ์์์ง ํ์ธํ๋ ๊ฒ๋ฟ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ทํ์ ์์ด๋์ด๋ฅผ ๋ฐ์ํ๊ธฐ ์ํด ํ ๋ฆฌํ์คํธ๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค.
RestSharp๋ฅผ ๋ ์ ์ดํดํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ์ต๋๋ค. ํ์ฌ nuget ํจํค์ง์ ๋ฌธ์ ๋ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
์, ์ ๋ฒ์ ์ ์์ง ๊ฒ์๋์ง ์์์ต๋๋ค. ๋ ๋์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ก ์ด๋ํ๊ณ ์์ธ ์ฒ๋ฆฌ์ ๊ด๋ จ๋ ์ผ๋ถ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ถ๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ์ต๋๋ค.
์ธ์ ๊ณ ์ณ์ง๊น?
๋ฒ์ 106.7.0์ด ์๋ ๊ฒ์ ๋ณผ ์ ์์ง๋ง ๋ด Visual Studio๋ 106.6.10๋ง ํ์ํฉ๋๋ค. ์ด์ ๋ ๋ฌด์์ ๋๊น?
106.9์์ ์์ ๋จ
์ด๊ฒ์ ์ต์ ๋น๋ Alexey์์ ๋ฌธ์ ๋ก ๋จ์ ์์ต๋๋ค.
@ronaldfeb ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๊ณ ์ฃผ์ฅํ๋ PR์ ๋ณํฉํ์ต๋๋ค. ์ฝ๋๋ฅผ ๊ฒ์ํด ์ฃผ์๊ฒ ์ต๋๊น?
@alexeyzimarev ์ ๋ JSON ๊ฐ์ฒด๋ฅผ ๋ณธ๋ฌธ์ผ๋ก ์ฌ์ฉํ๋ ๊ฐ๋จํ ํฌ์คํธ ํจ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ณธ๋ฌธ์ ์ด๋ฆ ๋งค๊ฐ๋ณ์๊ฐ null์ ๋๋ค.
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 });
}
json ๋ณธ๋ฌธ:
{
"smartloadId": "string",
"clientReference": "string",
"smsRecipientMsisdn": "string",
"deviceId": "string",
"productId": 0,
"amount": 0,
"pinless": true,
"sendSms": true,
"orderRefID": 0
}
์คํ ์ถ์ ์ ํฌํจํ ์์ธ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ถ์ฌ๋ฃ์ ์ ์์ต๋๊น?
@alexeyzimarev (106.9์์ ์์ ๋จ)
๋ด RestSharp ๋ฒ์ (106.10.1)
MemberSignUp ๊ฐ์
= ์๋ก์ด MemberSignUp()
{
์ด๋ฉ์ผ = "ํ
์คํธ",
๋ณ๋ช
= "ํ
์คํธ",
};
RestRequest ์์ฒญ = ์๋ก์ด RestRequest("/my/resource", Method.POST);
req.AlwaysMultipartFormData = true;
req.AddHeader("content-Type", "multipart/form-data");
req.AddJsonBody(signup);
๊ทธ๋ฌ๋ -> req.Parameters[1].Name = ๋น์ด ์์ต๋๋ค.
q.AddJsonBody()๋ฅผ ์์ฒญํ ๋ ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ
๋น์ทํ ์ค๋ฅ๊ฐ ์์ต๋๋ค
์ํธ
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
URL์ด ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
"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_์ ๋๋ค. ๋งค๊ฐ๋ณ์ ์ด๋ฆ์ด null์ธ ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ณ๋์ ๋ฌธ์ ๋ฅผ ์ด์ด์ฃผ์ธ์.
์ฃผ์ ๋ฒ์ ์ ๋ณ๊ฒฝํ์ง ์๊ณ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ(Parameter ํด๋์ค์ ๋งค๊ฐ ๋ณ์ ์๋ ์์ฑ์ ์ ๊ฑฐ)์ ์ด๋ป๊ฒ ์ถ๊ฐํ์ต๋๊น?
๋๋ 106.2.1์์ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ๋ฅผ ์๋ํ๋๋ฐ, ๋ณ๊ฒฝ ์ฌํญ์ ๊นจ๋จ๋ฆฌ์ง ์๊ณ ๋์ผํ ๋ฉ์ด์ (106)๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ง ๊ทธ๋ ์ง๋ ์์ต๋๋ค!
@bsalmeida ๊ทธ๋ ๊ตฐ์ . ์ด์์ ์ผ๋ก๋ ๋งค๊ฐ๋ณ์ ํด๋์ค๊ฐ ๋ด๋ถ์ ์์ด์ผ ํฉ๋๋ค. ์ฌ๋๋ค์ด ์ฌ๊ธฐ์ ๊ฒ์ํ๋ ๋ ๋ง์ ๋ฌธ์ ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์ง ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์๋ฝํ ์ ์์ต๋๋ค.