Class NSURLProtocol

  • All Implemented Interfaces:
    NSObject

    public class NSURLProtocol
    extends NSObject
    NSURLProtocol NSURLProtocol is an abstract class which provides the basic structure for performing protocol-specific loading of URL data. Concrete subclasses handle the specifics associated with one or more protocols or URL schemes. API-Since: 2.0
    • Constructor Detail

      • NSURLProtocol

        protected NSURLProtocol​(org.moe.natj.general.Pointer peer)
    • Method Detail

      • accessInstanceVariablesDirectly

        public static boolean accessInstanceVariablesDirectly()
      • allocWithZone

        public static NSURLProtocol allocWithZone​(org.moe.natj.general.ptr.VoidPtr zone)
      • automaticallyNotifiesObserversForKey

        public static boolean automaticallyNotifiesObserversForKey​(@NotNull
                                                                   @NotNull java.lang.String key)
      • canInitWithRequest

        public static boolean canInitWithRequest​(@NotNull
                                                 @NotNull NSURLRequest request)
        canInitWithRequest: This method determines whether this protocol can handle the given request. A concrete subclass should inspect the given request and determine whether or not the implementation can perform a load with that request. This is an abstract method. Subclasses must provide an implementation.
        Parameters:
        request - A request to inspect.
        Returns:
        YES if the protocol can handle the given request, NO if not.
      • canInitWithTask

        public static boolean canInitWithTask​(@NotNull
                                              @NotNull NSURLSessionTask task)
        API-Since: 8.0
      • cancelPreviousPerformRequestsWithTarget

        public static void cancelPreviousPerformRequestsWithTarget​(@NotNull
                                                                   @NotNull java.lang.Object aTarget)
      • cancelPreviousPerformRequestsWithTargetSelectorObject

        public static void cancelPreviousPerformRequestsWithTargetSelectorObject​(@NotNull
                                                                                 @NotNull java.lang.Object aTarget,
                                                                                 @NotNull
                                                                                 @NotNull org.moe.natj.objc.SEL aSelector,
                                                                                 @Nullable
                                                                                 @Nullable java.lang.Object anArgument)
      • canonicalRequestForRequest

        @NotNull
        public static @NotNull NSURLRequest canonicalRequestForRequest​(@NotNull
                                                                       @NotNull NSURLRequest request)
        canonicalRequestForRequest: This method returns a canonical version of the given request. It is up to each concrete protocol implementation to define what "canonical" means. However, a protocol should guarantee that the same input request always yields the same canonical form. Special consideration should be given when implementing this method since the canonical form of a request is used to look up objects in the URL cache, a process which performs equality checks between NSURLRequest objects.

        This is an abstract method; subclasses must provide an implementation.

        Parameters:
        request - A request to make canonical.
        Returns:
        The canonical form of the given request.
      • classFallbacksForKeyedArchiver

        @NotNull
        public static @NotNull NSArray<java.lang.String> classFallbacksForKeyedArchiver()
      • classForKeyedUnarchiver

        @NotNull
        public static @NotNull org.moe.natj.objc.Class classForKeyedUnarchiver()
      • debugDescription_static

        public static java.lang.String debugDescription_static()
      • description_static

        public static java.lang.String description_static()
      • hash_static

        public static long hash_static()
      • instanceMethodSignatureForSelector

        public static NSMethodSignature instanceMethodSignatureForSelector​(org.moe.natj.objc.SEL aSelector)
      • instancesRespondToSelector

        public static boolean instancesRespondToSelector​(org.moe.natj.objc.SEL aSelector)
      • isSubclassOfClass

        public static boolean isSubclassOfClass​(org.moe.natj.objc.Class aClass)
      • keyPathsForValuesAffectingValueForKey

        @NotNull
        public static @NotNull NSSet<java.lang.String> keyPathsForValuesAffectingValueForKey​(@NotNull
                                                                                             @NotNull java.lang.String key)
      • propertyForKeyInRequest

        @Nullable
        public static @Nullable java.lang.Object propertyForKeyInRequest​(@NotNull
                                                                         @NotNull java.lang.String key,
                                                                         @NotNull
                                                                         @NotNull NSURLRequest request)
        propertyForKey:inRequest: Returns the property in the given request previously stored with the given key. The purpose of this method is to provide an interface for protocol implementors to access protocol-specific information associated with NSURLRequest objects.
        Parameters:
        key - The string to use for the property lookup.
        request - The request to use for the property lookup.
        Returns:
        The property stored with the given key, or nil if no property had previously been stored with the given key in the given request.
      • registerClass

        public static boolean registerClass​(@NotNull
                                            @NotNull org.moe.natj.objc.Class protocolClass)
        registerClass: This method registers a protocol class, making it visible to several other NSURLProtocol class methods. When the URL loading system begins to load a request, each protocol class that has been registered is consulted in turn to see if it can be initialized with a given request. The first protocol handler class to provide a YES answer to +canInitWithRequest: "wins" and that protocol implementation is used to perform the URL load. There is no guarantee that all registered protocol classes will be consulted. Hence, it should be noted that registering a class places it first on the list of classes that will be consulted in calls to +canInitWithRequest:, moving it in front of all classes that had been registered previously.

        A similar design governs the process to create the canonical form of a request with the +canonicalRequestForRequest: class method.

        Parameters:
        protocolClass - the class to register.
        Returns:
        YES if the protocol was registered successfully, NO if not. The only way that failure can occur is if the given class is not a subclass of NSURLProtocol.
      • removePropertyForKeyInRequest

        public static void removePropertyForKeyInRequest​(@NotNull
                                                         @NotNull java.lang.String key,
                                                         @NotNull
                                                         @NotNull NSMutableURLRequest request)
        removePropertyForKey:inRequest: Remove any property stored under the given key Like setProperty:forKey:inRequest: above, the purpose of this method is to give protocol implementors the ability to store protocol-specific information in an NSURLRequest
        Parameters:
        key - The key whose value should be removed
        request - The request to be modified
      • requestIsCacheEquivalentToRequest

        public static boolean requestIsCacheEquivalentToRequest​(@NotNull
                                                                @NotNull NSURLRequest a,
                                                                @NotNull
                                                                @NotNull NSURLRequest b)
        requestIsCacheEquivalent:toRequest: Compares two requests for equivalence with regard to caching. Requests are considered equivalent for cache purposes if and only if they would be handled by the same protocol AND that protocol declares them equivalent after performing implementation-specific checks.
        Returns:
        YES if the two requests are cache-equivalent, NO otherwise.
      • resolveClassMethod

        public static boolean resolveClassMethod​(org.moe.natj.objc.SEL sel)
      • resolveInstanceMethod

        public static boolean resolveInstanceMethod​(org.moe.natj.objc.SEL sel)
      • setPropertyForKeyInRequest

        public static void setPropertyForKeyInRequest​(@NotNull
                                                      @NotNull java.lang.Object value,
                                                      @NotNull
                                                      @NotNull java.lang.String key,
                                                      @NotNull
                                                      @NotNull NSMutableURLRequest request)
        setProperty:forKey:inRequest: Stores the given property in the given request using the given key. The purpose of this method is to provide an interface for protocol implementors to customize protocol-specific information associated with NSMutableURLRequest objects.
        Parameters:
        value - The property to store.
        key - The string to use for the property storage.
        request - The request in which to store the property.
      • setVersion_static

        public static void setVersion_static​(long aVersion)
      • superclass_static

        public static org.moe.natj.objc.Class superclass_static()
      • unregisterClass

        public static void unregisterClass​(@NotNull
                                           @NotNull org.moe.natj.objc.Class protocolClass)
        unregisterClass: This method unregisters a protocol. After unregistration, a protocol class is no longer consulted in calls to NSURLProtocol class methods.
        Parameters:
        protocolClass - The class to unregister.
      • version_static

        public static long version_static()
      • cachedResponse

        @Nullable
        public @Nullable NSCachedURLResponse cachedResponse()
        Returns the NSCachedURLResponse of the receiver.
        Returns:
        The NSCachedURLResponse of the receiver.
      • client

        @Nullable
        public @Nullable NSURLProtocolClient client()
        Returns the NSURLProtocolClient of the receiver.
        Returns:
        The NSURLProtocolClient of the receiver.
      • initWithRequestCachedResponseClient

        public NSURLProtocol initWithRequestCachedResponseClient​(@NotNull
                                                                 @NotNull NSURLRequest request,
                                                                 @Nullable
                                                                 @Nullable NSCachedURLResponse cachedResponse,
                                                                 @Nullable
                                                                 @Nullable NSURLProtocolClient client)
        initWithRequest:cachedResponse:client: Initializes an NSURLProtocol given request, cached response, and client.
        Parameters:
        request - The request to load.
        cachedResponse - A response that has been retrieved from the cache for the given request. The protocol implementation should apply protocol-specific validity checks if such tests are necessary.
        client - The NSURLProtocolClient object that serves as the interface the protocol implementation can use to report results back to the URL loading system.
      • request

        @NotNull
        public @NotNull NSURLRequest request()
        Returns the NSURLRequest of the receiver.
        Returns:
        The NSURLRequest of the receiver.
      • startLoading

        public void startLoading()
        startLoading Starts protocol-specific loading of a request. When this method is called, the protocol implementation should start loading a request.
      • stopLoading

        public void stopLoading()
        stopLoading Stops protocol-specific loading of a request. When this method is called, the protocol implementation should end the work of loading a request. This could be in response to a cancel operation, so protocol implementations must be able to handle this call while a load is in progress.
      • useStoredAccessor

        @Deprecated
        public static boolean useStoredAccessor()
        Deprecated.