How do I get the last HTTP Status Code from a UIWebView?

后端 未结 9 2147
栀梦
栀梦 2020-12-08 16:43

I would like to detect when a page load request give to a UIWebView has returned a status code in the 5xx or 4xx range.

I\'ve setup the delegate for the web view a

9条回答
  •  萌比男神i
    2020-12-08 17:34

    Hmmm... I'm not an iPhone developer, but....

    Could you try creating an NSURLRequest with the URL you want to load? Then you could make the connection using NSURLConnection.

    NSURLConnection has a delegate method

    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
    

    which will give the the response from the server. Please note that if you are making the connection over HTTP, the response will actually be of class NSHTTPURLResponse. The NSHTTPURLResponse can be used to get the status using the following instance method

    - (NSInteger)statusCode
    

    NSURLConnection has another delegate method

    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
    

    that can be used to get the data from the URL Connection. You could then manually load the data into your UIWebView using:

    - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL
    

    That seems like a ton of work, but it could be done. Hopefully someone else will come up with the easier way, though I don't see it.

提交回复
热议问题