本文整理汇总了C#中System.Net.WebRequest.EndGetResponse方法的典型用法代码示例。如果您正苦于以下问题:C# WebRequest.EndGetResponse方法的具体用法?C# WebRequest.EndGetResponse怎么用?C# WebRequest.EndGetResponse使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Net.WebRequest
的用法示例。
在下文中一共展示了WebRequest.EndGetResponse方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: SendRequestAsyncTPL
private ServiceResponse SendRequestAsyncTPL(WebRequest request)
{
return _retryPolicy.ExecuteAction<ServiceResponse>(() =>
{
var task = Task.Factory.FromAsync(
request.BeginGetResponse,
asyncResult => request.EndGetResponse(asyncResult),
null)
.ContinueWith((t) =>
{
var response = (HttpWebResponse)t.Result;
var reader = new StreamReader(response.GetResponseStream());
var message = reader.ReadToEnd();
return new ServiceResponse() { IsSuccess = true, Message = message };
});
try
{
return task.Result;
}
catch (AggregateException ae)
{
throw MappedAggregateException(ae);
}
});
}
示例2: ToXml
XElement ToXml(WebRequest request, IAsyncResult result)
{
if (result.IsCompleted)
{
using (var response = request.EndGetResponse(result))
using (var input = response.GetResponseStream())
{
return ToXml(input);
}
}
return null;
}
示例3: ReadResult
private string ReadResult(WebRequest webRequest, IAsyncResult asyncResult)
{
try
{
using (var response = webRequest.EndGetResponse(asyncResult))
{
var result = response.GetResponseString();
return result;
}
}
catch
{
return "Error";
}
}
示例4: GeneralProcessResponse
private void GeneralProcessResponse(WebRequest request, IAsyncResult result, Action<Stream> responseStreamHandler)
{
IsLoading = false;
try
{
var response = request.EndGetResponse(result);
using (var stream = response.GetResponseStream())
{
responseStreamHandler(stream);
}
}
catch (Exception exception)
{
ReportError("Sorry - problem seen " + exception.Message);
}
}
示例5: RequestAsync
private static void RequestAsync(WebRequest request, byte[] bodyBytes, Action<TrackResult> callback)
{
request.BeginGetRequestStream((r1) =>
{
try
{
var stream = request.EndGetRequestStream(r1);
stream.BeginWrite(bodyBytes, 0, bodyBytes.Length, (r2) =>
{
try
{
stream.EndWrite(r2);
stream.Dispose();
request.BeginGetResponse((r3) =>
{
try
{
using (var response = request.EndGetResponse(r3))
{
using (var reader = new StreamReader(response.GetResponseStream()))
{
if (callback != null)
callback(new TrackResult(reader.ReadToEnd()));
}
}
}
catch (Exception ex)
{
HandleError(callback, ex);
}
}, null);
}
catch (Exception ex)
{
HandleError(callback, ex);
}
}, null);
}
catch(Exception ex)
{
HandleError(callback, ex);
}
}, null);
}
示例6: GetResponseInternal
private static WebResponse GetResponseInternal(WebRequest request)
{
// build the envent
using (var revent = new ManualResetEvent(false))
{
// start the async call
IAsyncResult result = request.BeginGetResponse(new AsyncCallback(CallStreamCallback), revent);
// wait for event
revent.WaitOne();
// get the response
WebResponse response = request.EndGetResponse(result);
// go ahead
return response;
}
}
示例7: ProcessWebResponse
/// <summary>
/// This sets the event handler with request and response data and
/// translates storage exceptions.
/// </summary>
/// <param name="req">The request.</param>
/// <param name="asyncResult">The async result.</param>
/// <param name="handler">The handler.</param>
/// <param name="sender">The sender.</param>
/// <returns>The processed response.</returns>
internal static WebResponse ProcessWebResponse(WebRequest req, IAsyncResult asyncResult, EventHandler<ResponseReceivedEventArgs> handler, object sender)
{
WebResponse response = null;
Exception exception = null;
try
{
response = req.EndGetResponse(asyncResult);
return response as HttpWebResponse;
}
catch (WebException e)
{
response = e.Response;
exception = Utilities.TranslateWebException(e);
throw exception;
}
finally
{
EventHelper.OnResponseReceived(req, response, handler, sender, exception);
}
}
示例8: ProcessResponse
private void ProcessResponse(WebRequest request, IAsyncResult result)
{
try
{
var fileService = MvxFileStoreHelper.SafeGetFileStore();
var tempFilePath = DownloadPath + ".tmp";
using (var resp = request.EndGetResponse(result))
{
using (var s = resp.GetResponseStream())
{
fileService.WriteFile(tempFilePath,
fileStream =>
{
var buffer = new byte[4 * 1024];
int count;
while ((count = s.Read(buffer, 0, buffer.Length)) > 0)
{
fileStream.Write(buffer, 0, count);
}
});
}
}
fileService.TryMove(tempFilePath, DownloadPath, true);
}
//#if !NETFX_CORE
// catch (ThreadAbortException)
// {
// throw;
// }
//#endif
catch (Exception exception)
{
FireDownloadFailed(exception);
return;
}
FireDownloadComplete();
}
示例9: HandleResponse
private AsyncCallback HandleResponse(
WebRequest request, Uri uri,
IWebAction action, byte[] content,
IAuthenticator authenticator)
{
return ar =>
{
try
{
using (var response = (HttpWebResponse)
request.EndGetResponse(ar))
{
using (var stream = response.GetResponseStream())
action.Complete(response.StatusCode, stream);
}
}
catch (WebException ex)
{
if (authenticator != _auth)
{
// Another thread has already updated the authenticator
Request(action, uri, content);
return;
}
// Do we have any alternative?
var next = _auth.Next(ex);
_auth = next;
if (next != null)
Request(action, uri, content);
else
action.Error(ex);
}
};
}
示例10: DecodeResponse
BEncodedDictionary DecodeResponse(WebRequest request, IAsyncResult result)
{
int bytesRead = 0;
int totalRead = 0;
byte[] buffer = new byte[2048];
WebResponse response = request.EndGetResponse(result);
using (MemoryStream dataStream = new MemoryStream(response.ContentLength > 0 ? (int)response.ContentLength : 256))
{
using (BinaryReader reader = new BinaryReader(response.GetResponseStream()))
{
// If there is a ContentLength, use that to decide how much we read.
if (response.ContentLength > 0)
{
while (totalRead < response.ContentLength)
{
bytesRead = reader.Read(buffer, 0, buffer.Length);
dataStream.Write(buffer, 0, bytesRead);
totalRead += bytesRead;
}
}
else // A compact response doesn't always have a content length, so we
{ // just have to keep reading until we think we have everything.
while ((bytesRead = reader.Read(buffer, 0, buffer.Length)) > 0)
dataStream.Write(buffer, 0, bytesRead);
}
}
response.Close();
dataStream.Seek(0, SeekOrigin.Begin);
return (BEncodedDictionary)BEncodedValue.Decode(dataStream);
}
}
示例11: EndGetMailCount
int EndGetMailCount(WebRequest request)
{
if (currentRequestResult == null)
return -1;
var requestResult = currentRequestResult;
currentRequestResult = null;
var response = request.EndGetResponse(requestResult);
using (var unreadStream = response.GetResponseStream()) {
var unreadMailXmlDoc = new XmlDocument();
unreadMailXmlDoc.Load(unreadStream);
var unreadMailEntries = unreadMailXmlDoc.GetElementsByTagName("entry");
return unreadMailEntries.Count;
}
}
示例12: RaiseWebResponse
private static void RaiseWebResponse(WebRequest request,
IAsyncResult result,
Action<WebResponseEventArgs>
callback)
{
var args = new WebResponseEventArgs
{Uri = request.RequestUri};
try
{
var response = request.EndGetResponse(result);
SetLastResponse(response);
using (
var reader =
new StreamReader(response.GetResponseStream()))
{
args.Response = reader.ReadToEnd();
}
}
catch (WebException ex)
{
args.Response = HandleWebException(ex);
}
callback.Invoke(args);
}
示例13: HandleResponse
private void HandleResponse(WebRequest request)
{
WebResponse response = null;
Stream responseStream = null;
StreamReader responseStreamReader = null;
request.BeginGetResponse((responseResult) =>
{
try
{
response = request.EndGetResponse(responseResult);
responseStream = response.GetResponseStream();
responseStreamReader = new StreamReader(responseStream);
ResponseText = responseStreamReader.ReadToEnd();
}
finally
{
try { if (response != null) response.Dispose(); }
catch { }
try { if (responseStream != null) responseStream.Dispose(); }
catch { }
try { if (responseStreamReader != null) ((IDisposable)responseStreamReader).Dispose(); }
catch { }
DisableProgressIndicator();
}
}, null);
}
示例14: GetWebResponseShim
// Note: Adapted from OAuthWebQuery.SetAuthorizationHeader()
public WebResponse GetWebResponseShim(WebRequest request, IAsyncResult result)
{
try
{
Response = request.EndGetResponse(result);
return Response;
}
catch (WebException ex)
{
Exception = ex;
return HandleWebException(ex);
}
}
示例15: GetWebResponse
protected virtual WebResponse GetWebResponse (WebRequest request, IAsyncResult result)
{
if (abort)
throw new WebException ("The operation has been aborted.", WebExceptionStatus.RequestCanceled);
return request.EndGetResponse (result);
}