// Copyright © 2020 The CefSharp Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
//NOTE:Classes in the CefSharp.Core namespace have been hidden from intellisnse so users don't use them directly
using System;
namespace CefSharp
{
///
public class UrlRequest : IUrlRequest
{
private CefSharp.Core.UrlRequest urlRequest;
///
/// Create a new URL request that is not associated with a specific browser or frame.
/// Use instead if you want the
/// request to have this association, in which case it may be handled differently.
/// For requests originating from the browser process: It may be intercepted by the client via or .
/// POST data may only contain only a single element of type PDE_TYPE_FILE or PDE_TYPE_BYTES.
/// Uses the Global RequestContext
///
/// request
/// url request client
public UrlRequest(IRequest request, IUrlRequestClient urlRequestClient) : this(request, urlRequestClient, null)
{
}
///
/// Create a new URL request that is not associated with a specific browser or frame.
/// Use instead if you want the
/// request to have this association, in which case it may be handled differently.
/// For requests originating from the browser process: It may be intercepted by the client via or .
/// POST data may only contain only a single element of type PDE_TYPE_FILE or PDE_TYPE_BYTES.
///
/// request
/// url request client
/// request context associated with this requets.
public UrlRequest(IRequest request, IUrlRequestClient urlRequestClient, IRequestContext requestContext)
{
if (request == null)
{
throw new ArgumentNullException(nameof(request));
}
if (urlRequestClient == null)
{
throw new ArgumentNullException(nameof(urlRequestClient));
}
urlRequest = new CefSharp.Core.UrlRequest(request.UnWrap(), urlRequestClient, requestContext?.UnWrap());
}
///
public bool ResponseWasCached
{
get { return urlRequest.ResponseWasCached; }
}
///
public IResponse Response
{
get { return urlRequest.Response; }
}
///
public UrlRequestStatus RequestStatus
{
get { return urlRequest.RequestStatus; }
}
///
public void Dispose()
{
urlRequest.Dispose();
}
///
/// Create a new URL request that is not associated with a specific browser or frame.
/// Use instead if you want the
/// request to have this association, in which case it may be handled differently.
/// For requests originating from the browser process: It may be intercepted by the client via or .
/// POST data may only contain only a single element of type PDE_TYPE_FILE or PDE_TYPE_BYTES.
/// Uses the Global RequestContext
///
/// request
/// url request client
public IUrlRequest Create(IRequest request, IUrlRequestClient urlRequestClient)
{
return new CefSharp.Core.UrlRequest(request, urlRequestClient);
}
///
/// Create a new URL request that is not associated with a specific browser or frame.
/// Use instead if you want the
/// request to have this association, in which case it may be handled differently.
/// For requests originating from the browser process: It may be intercepted by the client via or .
/// POST data may only contain only a single element of type PDE_TYPE_FILE or PDE_TYPE_BYTES.
///
/// request
/// url request client
/// request context associated with this requets.
public IUrlRequest Create(IRequest request, IUrlRequestClient urlRequestClient, IRequestContext requestContext)
{
return new CefSharp.Core.UrlRequest(request, urlRequestClient, requestContext);
}
}
}