2017-06-05 165 views
-1

我没有从Dynamics CRM Web服务器获得响应,并且想知道下面的代码是否有任何问题。我正在构建JSON有效负载并使用WEB API将请求发送到服务器端点未收到来自Dynamics CRM服务器Web的响应Api

using (HttpClient httpClient = new HttpClient()) { 
    Uri requesturi = new Uri(string.Format("{0}/api/data/v8.2",url)); 
    httpClient.BaseAddress = requesturi; 
    httpClient.Timeout = new TimeSpan(0, 10, 0); // 10 minutes 
    httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
    httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", result); 
    httpClient.DefaultRequestHeaders.Add("OData-MaxVersion", "4.0"); 
    HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, string.Format("/contacts",contact));     
    request.Content = new StringContent(props.ToString(), Encoding.UTF8, "application/json"); 
    HttpResponseMessage createResponse1 = await httpClient.SendAsync(request); 
    return createResponse1.StatusCode;    
} 

回答

1

降低以下行。

httpClient.Timeout = new TimeSpan(0, 10, 0); // 10 minutes 

httpClient.Timeout = new TimeSpan(0, 0, 10); // 10 seconds 

10分钟是一个令人惊讶的很长一段时间来等待请求完成。 30秒是Web服务请求的永恒。

由于您已经指定了如此长的超时时间,如果出现瞬时错误或查找问题,您需要等待10分钟才会超时。

你可能会从代码中得到一个错误或异常。

相关问题