Struct NSHTTPURLResponse

Source
#[repr(C)]
pub struct NSHTTPURLResponse { /* private fields */ }
Available on crate feature NSURLResponse only.
Expand description

An NSHTTPURLResponse object represents a response to an HTTP URL load. It is a specialization of NSURLResponse which provides conveniences for accessing information specific to HTTP protocol responses.

See also Apple’s documentation

Implementations§

Source§

impl NSHTTPURLResponse

Source

pub unsafe fn initWithURL_statusCode_HTTPVersion_headerFields( this: Allocated<Self>, url: &NSURL, status_code: NSInteger, http_version: Option<&NSString>, header_fields: Option<&NSDictionary<NSString, NSString>>, ) -> Option<Retained<Self>>

Available on crate features NSDictionary and NSString and NSURL only.

initializer for NSHTTPURLResponse objects.

Parameter url: the URL from which the response was generated.

Parameter statusCode: an HTTP status code.

Parameter HTTPVersion: The version of the HTTP response as represented by the server. This is typically represented as “HTTP/1.1”.

Parameter headerFields: A dictionary representing the header keys and values of the server response.

Returns: the instance of the object, or NULL if an error occurred during initialization.

This API was introduced in Mac OS X 10.7.2 and iOS 5.0 and is not available prior to those releases.

Source

pub unsafe fn statusCode(&self) -> NSInteger

Returns the HTTP status code of the receiver.

Returns: The HTTP status code of the receiver.

Source

pub unsafe fn allHeaderFields(&self) -> Retained<NSDictionary>

Available on crate feature NSDictionary only.

Returns a dictionary containing all the HTTP header fields of the receiver.

By examining this header dictionary, clients can see the “raw” header information which was reported to the protocol implementation by the HTTP server. This may be of use to sophisticated or special-purpose HTTP clients.

Returns: A dictionary containing all the HTTP header fields of the receiver.

Source

pub unsafe fn valueForHTTPHeaderField( &self, field: &NSString, ) -> Option<Retained<NSString>>

Available on crate feature 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.

Source

pub unsafe fn localizedStringForStatusCode( status_code: NSInteger, ) -> Retained<NSString>

Available on crate feature NSString only.

Convenience method which returns a localized string corresponding to the status code for this response.

Parameter statusCode: the status code to use to produce a localized string.

Returns: A localized string corresponding to the given status code.

Source§

impl NSHTTPURLResponse

Methods declared on superclass NSURLResponse.

Source

pub unsafe fn initWithURL_MIMEType_expectedContentLength_textEncodingName( this: Allocated<Self>, url: &NSURL, mime_type: Option<&NSString>, length: NSInteger, name: Option<&NSString>, ) -> Retained<Self>

Available on crate features NSString and NSURL only.

Initialize an NSURLResponse with the provided values.

Parameter URL: the URL

Parameter MIMEType: the MIME content type of the response

Parameter length: the expected content length of the associated data

Parameter name: the name of the text encoding for the associated data, if applicable, else nil

Returns: The initialized NSURLResponse.

This is the designated initializer for NSURLResponse.

Source§

impl NSHTTPURLResponse

Methods declared on superclass NSObject.

Source

pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>

Source

pub unsafe fn new() -> Retained<Self>

Methods from Deref<Target = NSURLResponse>§

Source

pub unsafe fn URL(&self) -> Option<Retained<NSURL>>

Available on crate feature NSURL only.

Returns the URL of the receiver.

Returns: The URL of the receiver.

Source

pub unsafe fn MIMEType(&self) -> Option<Retained<NSString>>

Available on crate feature NSString only.

Returns the MIME type of the receiver.

The MIME type is based on the information provided from an origin source. However, that value may be changed or corrected by a protocol implementation if it can be determined that the origin server or source reported the information incorrectly or imprecisely. An attempt to guess the MIME type may be made if the origin source did not report any such information.

Returns: The MIME type of the receiver.

Source

pub unsafe fn expectedContentLength(&self) -> c_longlong

Returns the expected content length of the receiver.

Some protocol implementations report a content length as part of delivering load metadata, but not all protocols guarantee the amount of data that will be delivered in actuality. Hence, this method returns an expected amount. Clients should use this value as an advisory, and should be prepared to deal with either more or less data.

Returns: The expected content length of the receiver, or -1 if there is no expectation that can be arrived at regarding expected content length.

Source

pub unsafe fn textEncodingName(&self) -> Option<Retained<NSString>>

Available on crate feature NSString only.

Returns the name of the text encoding of the receiver.

This name will be the actual string reported by the origin source during the course of performing a protocol-specific URL load. Clients can inspect this string and convert it to an NSStringEncoding or CFStringEncoding using the methods and functions made available in the appropriate framework.

Returns: The name of the text encoding of the receiver, or nil if no text encoding was specified.

Source

pub unsafe fn suggestedFilename(&self) -> Option<Retained<NSString>>

Available on crate feature NSString only.

Returns a suggested filename if the resource were saved to disk.

The method first checks if the server has specified a filename using the content disposition header. If no valid filename is specified using that mechanism, this method checks the last path component of the URL. If no valid filename can be obtained using the last path component, this method uses the URL’s host as the filename. If the URL’s host can’t be converted to a valid filename, the filename “unknown” is used. In most cases, this method appends the proper file extension based on the MIME type. This method always returns a valid filename.

Returns: A suggested filename to use if saving the resource to disk.

Methods from Deref<Target = NSObject>§

Source

pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !

Handle messages the object doesn’t recognize.

See Apple’s documentation for details.

Methods from Deref<Target = AnyObject>§

Source

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());
Source

pub unsafe fn get_ivar<T>(&self, name: &str) -> &T
where T: Encode,

👎Deprecated: this is difficult to use correctly, use 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.

Source

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 NSHTTPURLResponse

Source§

fn as_ref(&self) -> &AnyObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSHTTPURLResponse> for NSHTTPURLResponse

Source§

fn as_ref(&self) -> &Self

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSObject> for NSHTTPURLResponse

Source§

fn as_ref(&self) -> &NSObject

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl AsRef<NSURLResponse> for NSHTTPURLResponse

Source§

fn as_ref(&self) -> &NSURLResponse

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Borrow<AnyObject> for NSHTTPURLResponse

Source§

fn borrow(&self) -> &AnyObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSObject> for NSHTTPURLResponse

Source§

fn borrow(&self) -> &NSObject

Immutably borrows from an owned value. Read more
Source§

impl Borrow<NSURLResponse> for NSHTTPURLResponse

Source§

fn borrow(&self) -> &NSURLResponse

Immutably borrows from an owned value. Read more
Source§

impl ClassType for NSHTTPURLResponse

Source§

const NAME: &'static str = "NSHTTPURLResponse"

The name of the Objective-C class that this type represents. Read more
Source§

type Super = NSURLResponse

The superclass of this class. Read more
Source§

type ThreadKind = <<NSHTTPURLResponse as ClassType>::Super as ClassType>::ThreadKind

Whether the type can be used from any thread, or from only the main thread. Read more
Source§

fn class() -> &'static AnyClass

Get a reference to the Objective-C class that this type represents. Read more
Source§

fn as_super(&self) -> &Self::Super

Get an immutable reference to the superclass.
Source§

impl CopyingHelper for NSHTTPURLResponse

Available on crate feature NSObject only.
Source§

type Result = NSHTTPURLResponse

The immutable counterpart of the type, or Self if the type has no immutable counterpart. Read more
Source§

impl Debug for NSHTTPURLResponse

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Deref for NSHTTPURLResponse

Source§

type Target = NSURLResponse

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Hash for NSHTTPURLResponse

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Message for NSHTTPURLResponse

Source§

fn retain(&self) -> Retained<Self>
where Self: Sized,

Increment the reference count of the receiver. Read more
Source§

impl NSCoding for NSHTTPURLResponse

Source§

unsafe fn encodeWithCoder(&self, coder: &NSCoder)
where Self: Sized + Message,

Available on crate features NSObject and NSCoder only.
Source§

unsafe fn initWithCoder( this: Allocated<Self>, coder: &NSCoder, ) -> Option<Retained<Self>>
where Self: Sized + Message,

Available on crate features NSObject and NSCoder only.
Source§

impl NSCopying for NSHTTPURLResponse

Source§

fn copy(&self) -> Retained<Self::Result>
where Self: Sized + Message + CopyingHelper,

Available on crate feature NSObject only.
Returns a new instance that’s a copy of the receiver. Read more
Source§

unsafe fn copyWithZone(&self, zone: *mut NSZone) -> Retained<Self::Result>
where Self: Sized + Message + CopyingHelper,

Available on crate feature NSObject only.
Returns a new instance that’s a copy of the receiver. Read more
Source§

impl NSObjectProtocol for NSHTTPURLResponse

Source§

fn isEqual(&self, other: Option<&AnyObject>) -> bool
where Self: Sized + Message,

Check whether the object is equal to an arbitrary other object. Read more
Source§

fn hash(&self) -> usize
where Self: Sized + Message,

An integer that can be used as a table address in a hash table structure. Read more
Source§

fn isKindOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of the class, or one of its subclasses. Read more
Source§

fn is_kind_of<T>(&self) -> bool
where T: ClassType, Self: Sized + Message,

👎Deprecated: use isKindOfClass directly, or cast your objects with AnyObject::downcast_ref
Check if the object is an instance of the class type, or one of its subclasses. Read more
Source§

fn isMemberOfClass(&self, cls: &AnyClass) -> bool
where Self: Sized + Message,

Check if the object is an instance of a specific class, without checking subclasses. Read more
Source§

fn respondsToSelector(&self, aSelector: Sel) -> bool
where Self: Sized + Message,

Check whether the object implements or inherits a method with the given selector. Read more
Source§

fn conformsToProtocol(&self, aProtocol: &AnyProtocol) -> bool
where Self: Sized + Message,

Check whether the object conforms to a given protocol. Read more
Source§

fn description(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object. Read more
Source§

fn debugDescription(&self) -> Retained<NSObject>
where Self: Sized + Message,

A textual representation of the object to use when debugging. Read more
Source§

fn isProxy(&self) -> bool
where Self: Sized + Message,

Check whether the receiver is a subclass of the NSProxy root class instead of the usual NSObject. Read more
Source§

fn retainCount(&self) -> usize
where Self: Sized + Message,

The reference count of the object. Read more
Source§

impl NSSecureCoding for NSHTTPURLResponse

Source§

unsafe fn supportsSecureCoding() -> bool
where Self: Sized + ClassType,

Available on crate feature NSObject only.
Source§

impl PartialEq for NSHTTPURLResponse

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl RefEncode for NSHTTPURLResponse

Source§

const ENCODING_REF: Encoding = <NSURLResponse as ::objc2::RefEncode>::ENCODING_REF

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl DowncastTarget for NSHTTPURLResponse

Source§

impl Eq for NSHTTPURLResponse

Source§

impl Send for NSHTTPURLResponse

Source§

impl Sync for NSHTTPURLResponse

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<'a, T> AnyThread for T
where T: ClassType<ThreadKind = dyn AnyThread + 'a> + ?Sized,

Source§

fn alloc() -> Allocated<Self>
where Self: Sized + ClassType,

Allocate a new instance of the class. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,