| #!/usr/bin/env python |
| # |
| # Copyright 2007 Google Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| |
| |
| """Errors used in the urlfetch API |
| developers. |
| """ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class Error(Exception): |
| """Base URL fetcher error type.""" |
| |
| class DownloadError(Error): |
| """Raised when we could not fetch the URL for any reason. |
| |
| Note that this exception is only raised when we cannot contact the |
| server. HTTP errors (e.g., 404) are returned in the status_code field |
| in the return value of fetch, and no exception is raised. |
| """ |
| |
| class MalformedReplyError(DownloadError): |
| """Raised when the target server returns an invalid HTTP response. |
| |
| Responses are invalid if they contain no headers, malformed or |
| incomplete headers, or have content missing. |
| """ |
| |
| class TooManyRedirectsError(DownloadError): |
| """Raised when follow_redirects input parameter was set to true and the |
| redirect limit was hit.""" |
| |
| class InternalTransientError(Error): |
| """Raised when an internal transient error occurs.""" |
| |
| class ConnectionClosedError(DownloadError): |
| """Raised when the target server prematurely closes the connection.""" |
| |
| class InvalidURLError(Error): |
| """Raised when the URL given is empty or invalid. |
| |
| Only http: and https: URLs are allowed. The maximum URL length |
| allowed is 2048 characters. The login/pass portion is not |
| allowed. In deployed applications, only ports 80 and 443 for http |
| and https respectively are allowed. |
| """ |
| |
| class DNSLookupFailedError(DownloadError): |
| """Raised when the DNS lookup for a URL failed.""" |
| |
| class DeadlineExceededError(DownloadError): |
| """Raised when we could not fetch the URL because the deadline was exceeded. |
| |
| This can occur with either the client-supplied 'deadline' or the system |
| default, if the client does not supply a 'deadline' parameter. |
| """ |
| |
| class ResponseTooLargeError(Error): |
| """Raised when the response was too large and was truncated.""" |
| def __init__(self, response): |
| self.response = response |
| |
| class InvalidMethodError(Error): |
| """Raised when an invalid value for 'method' is provided""" |
| |
| class SSLCertificateError(Error): |
| """Raised when an invalid server certificate is presented.""" |