#[repr(C)]pub struct NSURLRequest { /* private fields */ }
NSURLRequest
only.Expand description
An NSURLRequest object represents a URL load request in a manner independent of protocol and URL scheme.
NSURLRequest encapsulates two basic data elements about a URL load request:
- The URL to load.
- The policy to use when consulting the URL content cache made available by the implementation.
- Protocol implementors should direct their attention to the NSURLRequestExtensibility category on NSURLRequest for more information on how to provide extensions on NSURLRequest to support protocol-specific request information.
- Clients of this API who wish to create NSURLRequest objects to load URL content should consult the protocol-specific NSURLRequest categories that are available. The NSHTTPURLRequest category on NSURLRequest is an example.
Objects of this class are used to create NSURLConnection instances, which can are used to perform the load of a URL, or as input to the NSURLConnection class method which performs synchronous loads.
See also Apple’s documentation
Implementations§
Source§impl NSURLRequest
impl NSURLRequest
Sourcepub unsafe fn requestWithURL(url: &NSURL) -> Retained<Self>
Available on crate feature NSURL
only.
pub unsafe fn requestWithURL(url: &NSURL) -> Retained<Self>
NSURL
only.Allocates and initializes an NSURLRequest with the given URL.
Default values are used for cache policy (NSURLRequestUseProtocolCachePolicy) and timeout interval (60 seconds).
Parameter URL
: The URL for the request.
Returns: A newly-created and autoreleased NSURLRequest instance.
Sourcepub unsafe fn supportsSecureCoding() -> bool
pub unsafe fn supportsSecureCoding() -> bool
Indicates that NSURLRequest implements the NSSecureCoding protocol.
Returns: A BOOL value set to YES.
Sourcepub unsafe fn requestWithURL_cachePolicy_timeoutInterval(
url: &NSURL,
cache_policy: NSURLRequestCachePolicy,
timeout_interval: NSTimeInterval,
) -> Retained<Self>
Available on crate features NSDate
and NSURL
only.
pub unsafe fn requestWithURL_cachePolicy_timeoutInterval( url: &NSURL, cache_policy: NSURLRequestCachePolicy, timeout_interval: NSTimeInterval, ) -> Retained<Self>
NSDate
and NSURL
only.Allocates and initializes a NSURLRequest with the given URL and cache policy.
Parameter URL
: The URL for the request.
Parameter cachePolicy
: The cache policy for the request.
Parameter timeoutInterval
: The timeout interval for the request. See the
commentary for the
timeoutInterval
for more information on
timeout intervals.
Returns: A newly-created and autoreleased NSURLRequest instance.
Sourcepub unsafe fn initWithURL(this: Allocated<Self>, url: &NSURL) -> Retained<Self>
Available on crate feature NSURL
only.
pub unsafe fn initWithURL(this: Allocated<Self>, url: &NSURL) -> Retained<Self>
NSURL
only.Initializes an NSURLRequest with the given URL.
Default values are used for cache policy (NSURLRequestUseProtocolCachePolicy) and timeout interval (60 seconds).
Parameter URL
: The URL for the request.
Returns: An initialized NSURLRequest.
Sourcepub unsafe fn initWithURL_cachePolicy_timeoutInterval(
this: Allocated<Self>,
url: &NSURL,
cache_policy: NSURLRequestCachePolicy,
timeout_interval: NSTimeInterval,
) -> Retained<Self>
Available on crate features NSDate
and NSURL
only.
pub unsafe fn initWithURL_cachePolicy_timeoutInterval( this: Allocated<Self>, url: &NSURL, cache_policy: NSURLRequestCachePolicy, timeout_interval: NSTimeInterval, ) -> Retained<Self>
NSDate
and NSURL
only.Initializes an NSURLRequest with the given URL and cache policy.
This is the designated initializer for the NSURLRequest class.
Parameter URL
: The URL for the request.
Parameter cachePolicy
: The cache policy for the request.
Parameter timeoutInterval
: The timeout interval for the request. See the
commentary for the
timeoutInterval
for more information on
timeout intervals.
Returns: An initialized NSURLRequest.
Sourcepub unsafe fn URL(&self) -> Option<Retained<NSURL>>
Available on crate feature NSURL
only.
pub unsafe fn URL(&self) -> Option<Retained<NSURL>>
NSURL
only.Returns the URL of the receiver.
Returns: The URL of the receiver.
Sourcepub unsafe fn cachePolicy(&self) -> NSURLRequestCachePolicy
pub unsafe fn cachePolicy(&self) -> NSURLRequestCachePolicy
Returns the cache policy of the receiver.
Returns: The cache policy of the receiver.
Sourcepub unsafe fn timeoutInterval(&self) -> NSTimeInterval
Available on crate feature NSDate
only.
pub unsafe fn timeoutInterval(&self) -> NSTimeInterval
NSDate
only.Returns the timeout interval of the receiver.
The timeout interval specifies the limit on the idle interval allotted to a request in the process of loading. The “idle interval” is defined as the period of time that has passed since the last instance of load activity occurred for a request that is in the process of loading. Hence, when an instance of load activity occurs (e.g. bytes are received from the network for a request), the idle interval for a request is reset to 0. If the idle interval ever becomes greater than or equal to the timeout interval, the request is considered to have timed out. This timeout interval is measured in seconds.
Returns: The timeout interval of the receiver.
Sourcepub unsafe fn mainDocumentURL(&self) -> Option<Retained<NSURL>>
Available on crate feature NSURL
only.
pub unsafe fn mainDocumentURL(&self) -> Option<Retained<NSURL>>
NSURL
only.The main document URL associated with this load.
This URL is used for the cookie “same domain as main document” policy, and attributing the request as a sub-resource of a user-specified URL. There may also be other future uses. See setMainDocumentURL:
Returns: The main document URL.
Sourcepub unsafe fn networkServiceType(&self) -> NSURLRequestNetworkServiceType
pub unsafe fn networkServiceType(&self) -> NSURLRequestNetworkServiceType
Returns the NSURLRequestNetworkServiceType associated with this request.
This will return NSURLNetworkServiceTypeDefault for requests that have not explicitly set a networkServiceType (using the setNetworkServiceType method).
Returns: The NSURLRequestNetworkServiceType associated with this request.
Sourcepub unsafe fn allowsCellularAccess(&self) -> bool
pub unsafe fn allowsCellularAccess(&self) -> bool
returns whether a connection created with this request is allowed to use the built in cellular radios (if present).
Returns: YES if the receiver is allowed to use the built in cellular radios to satisfy the request, NO otherwise.
Sourcepub unsafe fn allowsExpensiveNetworkAccess(&self) -> bool
pub unsafe fn allowsExpensiveNetworkAccess(&self) -> bool
returns whether a connection created with this request is allowed to use network interfaces which have been marked as expensive.
Returns: YES if the receiver is allowed to use an interface marked as expensive to satisfy the request, NO otherwise.
Sourcepub unsafe fn allowsConstrainedNetworkAccess(&self) -> bool
pub unsafe fn allowsConstrainedNetworkAccess(&self) -> bool
returns whether a connection created with this request is allowed to use network interfaces which have been marked as constrained.
Returns: YES if the receiver is allowed to use an interface marked as constrained to satisfy the request, NO otherwise.
Sourcepub unsafe fn assumesHTTP3Capable(&self) -> bool
pub unsafe fn assumesHTTP3Capable(&self) -> bool
returns whether we assume that server supports HTTP/3. Enables QUIC racing without HTTP/3 service discovery.
Returns: YES if server endpoint is known to support HTTP/3. Defaults to NO. The default may be YES in a future OS update.
Sourcepub unsafe fn attribution(&self) -> NSURLRequestAttribution
pub unsafe fn attribution(&self) -> NSURLRequestAttribution
Returns the NSURLRequestAttribution associated with this request.
This will return NSURLRequestAttributionDeveloper for requests that have not explicitly set an attribution.
Returns: The NSURLRequestAttribution associated with this request.
Sourcepub unsafe fn requiresDNSSECValidation(&self) -> bool
pub unsafe fn requiresDNSSECValidation(&self) -> bool
sets whether a request is required to do DNSSEC validation during DNS lookup.
YES, if the DNS lookup for this request should require DNSSEC validation, No otherwise. Defaults to NO.
Sourcepub unsafe fn allowsPersistentDNS(&self) -> bool
pub unsafe fn allowsPersistentDNS(&self) -> bool
Allows storing and usage of DNS answers, potentially beyond TTL expiry, in a persistent per-process cache. This should only be set for hostnames whose resolutions are not expected to change across networks.
YES, if the DNS lookup for this request is allowed to use a persistent per-process cache, NO otherwise. Defaults to NO.
NSString
only.Source§impl NSURLRequest
Methods declared on superclass NSObject
.
impl NSURLRequest
Methods declared on superclass NSObject
.
Source§impl NSURLRequest
NSHTTPURLRequest.
The NSHTTPURLRequest on NSURLRequest provides methods for accessing
information specific to HTTP protocol requests.
impl NSURLRequest
NSHTTPURLRequest. The NSHTTPURLRequest on NSURLRequest provides methods for accessing information specific to HTTP protocol requests.
Sourcepub unsafe fn HTTPMethod(&self) -> Option<Retained<NSString>>
Available on crate feature NSString
only.
pub unsafe fn HTTPMethod(&self) -> Option<Retained<NSString>>
NSString
only.Returns the HTTP request method of the receiver.
Returns: the HTTP request method of the receiver.
Sourcepub unsafe fn allHTTPHeaderFields(
&self,
) -> Option<Retained<NSDictionary<NSString, NSString>>>
Available on crate features NSDictionary
and NSString
only.
pub unsafe fn allHTTPHeaderFields( &self, ) -> Option<Retained<NSDictionary<NSString, NSString>>>
NSDictionary
and NSString
only.Returns a dictionary containing all the HTTP header fields of the receiver.
Returns: a dictionary containing all the HTTP header fields of the receiver.
Sourcepub unsafe fn valueForHTTPHeaderField(
&self,
field: &NSString,
) -> Option<Retained<NSString>>
Available on crate feature NSString
only.
pub unsafe fn valueForHTTPHeaderField( &self, field: &NSString, ) -> Option<Retained<NSString>>
NSString
only.Returns the value which corresponds to the given header field. Note that, in keeping with the HTTP RFC, HTTP header field names are case-insensitive.
Parameter field
: the header field name to use for the lookup
(case-insensitive).
Returns: the value associated with the given header field, or nil if there is no value associated with the given header field.
Sourcepub unsafe fn HTTPBody(&self) -> Option<Retained<NSData>>
Available on crate feature NSData
only.
pub unsafe fn HTTPBody(&self) -> Option<Retained<NSData>>
NSData
only.Returns the request body data of the receiver.
This data is sent as the message body of the request, as in done in an HTTP POST request.
Returns: The request body data of the receiver.
Sourcepub unsafe fn HTTPBodyStream(&self) -> Option<Retained<NSInputStream>>
Available on crate feature NSStream
only.
pub unsafe fn HTTPBodyStream(&self) -> Option<Retained<NSInputStream>>
NSStream
only.Returns the request body stream of the receiver if any has been set
The stream is returned for examination only; it is not safe for the caller to manipulate the stream in any way. Also note that the HTTPBodyStream and HTTPBody are mutually exclusive - only one can be set on a given request. Also note that the body stream is preserved across copies, but is LOST when the request is coded via the NSCoding protocol
Returns: The request body stream of the receiver.
Sourcepub unsafe fn HTTPShouldHandleCookies(&self) -> bool
pub unsafe fn HTTPShouldHandleCookies(&self) -> bool
Determine whether default cookie handling will happen for this request.
NOTE: This value is not used prior to 10.3
Returns: YES if cookies will be sent with and set for this request; otherwise NO.
Sourcepub unsafe fn HTTPShouldUsePipelining(&self) -> bool
👎Deprecated: Only supported in the classic loader, please adopt HTTP/2 and HTTP/3 instead
pub unsafe fn HTTPShouldUsePipelining(&self) -> bool
Reports whether the receiver is not expected to wait for the previous response before transmitting.
Returns: YES if the receiver should transmit before the previous response is received. NO if the receiver should wait for the previous response before transmitting.
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init
/new
methods).
§Example
Check that an instance of NSObject
has the precise class NSObject
.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());
Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load
instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load
instead.Use Ivar::load
instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T
.
See Ivar::load_ptr
for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T
.
This is the reference-variant. Use Retained::downcast
if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString
.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString
to a NSMutableString
,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass:
for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject
.
§Panics
This works internally by calling isKindOfClass:
. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject
and
NSProxy
implement this method.
§Examples
Cast an NSString
back and forth from NSObject
.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();
Try (and fail) to cast an NSObject
to an NSString
.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());
Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();
This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}
Trait Implementations§
Source§impl AsRef<AnyObject> for NSURLRequest
impl AsRef<AnyObject> for NSURLRequest
Source§impl AsRef<NSObject> for NSURLRequest
impl AsRef<NSObject> for NSURLRequest
Source§impl AsRef<NSURLRequest> for NSMutableURLRequest
impl AsRef<NSURLRequest> for NSMutableURLRequest
Source§fn as_ref(&self) -> &NSURLRequest
fn as_ref(&self) -> &NSURLRequest
Source§impl AsRef<NSURLRequest> for NSURLRequest
impl AsRef<NSURLRequest> for NSURLRequest
Source§impl Borrow<AnyObject> for NSURLRequest
impl Borrow<AnyObject> for NSURLRequest
Source§impl Borrow<NSObject> for NSURLRequest
impl Borrow<NSObject> for NSURLRequest
Source§impl Borrow<NSURLRequest> for NSMutableURLRequest
impl Borrow<NSURLRequest> for NSMutableURLRequest
Source§fn borrow(&self) -> &NSURLRequest
fn borrow(&self) -> &NSURLRequest
Source§impl ClassType for NSURLRequest
impl ClassType for NSURLRequest
Source§const NAME: &'static str = "NSURLRequest"
const NAME: &'static str = "NSURLRequest"
Source§type ThreadKind = <<NSURLRequest as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<NSURLRequest as ClassType>::Super as ClassType>::ThreadKind
Source§impl CopyingHelper for NSURLRequest
Available on crate feature NSObject
only.
impl CopyingHelper for NSURLRequest
NSObject
only.Source§type Result = NSURLRequest
type Result = NSURLRequest
Self
if the type has no
immutable counterpart. Read moreSource§impl Debug for NSURLRequest
impl Debug for NSURLRequest
Source§impl Deref for NSURLRequest
impl Deref for NSURLRequest
Source§impl Hash for NSURLRequest
impl Hash for NSURLRequest
Source§impl Message for NSURLRequest
impl Message for NSURLRequest
Source§impl MutableCopyingHelper for NSURLRequest
Available on crate feature NSObject
only.
impl MutableCopyingHelper for NSURLRequest
NSObject
only.Source§type Result = NSMutableURLRequest
type Result = NSMutableURLRequest
Self
if the type has no
mutable counterpart. Read moreSource§impl NSCoding for NSURLRequest
impl NSCoding for NSURLRequest
Source§unsafe fn encodeWithCoder(&self, coder: &NSCoder)
unsafe fn encodeWithCoder(&self, coder: &NSCoder)
NSObject
and NSCoder
only.Source§impl NSCopying for NSURLRequest
impl NSCopying for NSURLRequest
Source§impl NSMutableCopying for NSURLRequest
impl NSMutableCopying for NSURLRequest
Source§impl NSObjectProtocol for NSURLRequest
impl NSObjectProtocol for NSURLRequest
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass
directly, or cast your objects with AnyObject::downcast_ref