private void FinishWebRequest(IAsyncResult result)
{
try
{
var response = _webRequest.GetSyncResponse(_timeOut);
var dataStream = CopyAndClose(response.GetResponseStream());
if (dataStream != null)
{
var sReader = new StreamReader(dataStream);
var jsonString = sReader.ReadToEnd();
var serializer = new JsonSerializer();
var jToken = JObject.Parse(jsonString);
_featureInfo = (ArcGISFeatureInfo)serializer.Deserialize(new JTokenReader(jToken), typeof(ArcGISFeatureInfo));
dataStream.Position = 0;
using (var reader = new StreamReader(dataStream))
{
var contentString = reader.ReadToEnd();
if (contentString.Contains("{\"error\":{\""))
{
OnIdentifyFailed();
return;
}
}
dataStream.Dispose();
}
response.Dispose();
_webRequest.EndGetResponse(result);
OnIdentifyFinished();
}
catch (WebException ex)
{
Logger.Log(LogLevel.Warning, ex.Message, ex);
OnIdentifyFailed();
}
}