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.
    • Constructor Detail

      • NSURLProtocol

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

      • accessInstanceVariablesDirectly

        public static boolean accessInstanceVariablesDirectly()
      • allocWithZone

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

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

        public static boolean canInitWithRequest​(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. Sublasses 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​(NSURLSessionTask task)
      • cancelPreviousPerformRequestsWithTarget

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

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

        public static NSURLRequest canonicalRequestForRequest​(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; sublasses must provide an implementation.

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

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

        public static 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

        public static NSSet<java.lang.String> keyPathsForValuesAffectingValueForKey​(java.lang.String key)
      • new_objc

        public static java.lang.Object new_objc()
      • propertyForKeyInRequest

        public static java.lang.Object propertyForKeyInRequest​(java.lang.String key,
                                                               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​(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​(java.lang.String key,
                                                         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​(NSURLRequest a,
                                                                NSURLRequest b)
        requestIsCacheEquivalent:toRequest: Compares two requests for equivalence with regard to caching. Requests are considered euqivalent 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​(java.lang.Object value,
                                                      java.lang.String key,
                                                      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​(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

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

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

        public NSURLProtocol initWithRequestCachedResponseClient​(NSURLRequest request,
                                                                 NSCachedURLResponse cachedResponse,
                                                                 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

        public 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.