타사 웹 API를 호출하여 일부 데이터를 업데이트하려고합니다. 저는 약 5 개의 일자리를 빠르게 연속으로 제출했으며, 처음 두 건의 요청이 제대로 작동하고 있습니다. 그러나 마지막 세 개는 결코 업데이트되지 않습니다. 응용 프로그램은 요청이 시간이 초과되었음을 나타내는 것 같지만, 나는 내 편에서 어떤 것도 망치고 있지는 않은지 확인하려고합니다.두 개의 요청 후 WebRequest.GetResponse()가 만료되었습니다.
나는 아래의 함수를 Action<string, Dictionary<string,object>> Delegate
이라고 부르며, BeginInvoke
을 사용하여 API를 비동기 적으로 호출합니다. 나는 그 반응에 대해 정말로 신경 쓰지 않는다. 내가 WebRequest.GetResponse()
에 대해 오해하고 있거나 이것이 엔드 포인트에 문제가 있습니까?
private void UpdateJobInfo(string jobId, Dictionary<string, object> updates)
{
var postData = GetJsonEncodedValues(updates);
var request = WebRequest.Create(string.Format(JobResultEndpoint, _username, jobId));
request.ContentType = "application/json; charset=utf-8";
request.Method = WebRequestMethods.Http.Put;
request.Headers[HttpRequestHeader.Authorization] = GetAuthenticationCredentials();
request.GetRequestStream().Write(Encoding.ASCII.GetBytes(postData), 0, Encoding.ASCII.GetBytes(postData).Length);
request.GetResponse();
}
, 당신은 예외가 발생하는 경우 일어날 무엇을 기대합니까? –
나는 이것을 호출하는 블럭에서'try ... catch'를 수행하고 있습니다. 그러나 메소드를 비동기 적으로 호출하면 결코 그 정보를 다시 얻지 못할 것입니다. 좋은 캐치. – elucid8