(self, url, data=None)
return addinfourl(f, headers, url)
Use "data" URL.
Use "data" URL.
Use data URL .
def open_data(self, url, data=None):
        """Use "data" URL."""
        if not isinstance(url, str):
            raise URLError('data error: proxy support for data protocol currently not implemented')
        # ignore POSTed data
        #
        # syntax of data URLs:
        # dataurl   := "data:" [ mediatype ] [ ";base64" ] "," data
        # mediatype := [ type "/" subtype ] *( ";" parameter )
        # data      := *urlchar
        # parameter := attribute "=" value
        try:
            [type, data] = url.split(',', 1)
        except ValueError:
            raise OSError('data error', 'bad data URL')
        if not type:
            type = 'text/plain;charset=US-ASCII'
        semi = type.rfind(';')
        if semi >= 0 and '=' not in type[semi:]:
            encoding = type[semi+1:]
            type = type[:semi]
        else:
            encoding = ''
        msg = []
        msg.append('Date: %s'%time.strftime('%a, %d %b %Y %H:%M:%S GMT',
                                            time.gmtime(time.time())))
        msg.append('Content-type: %s' % type)
        if encoding == 'base64':
            # XXX is this encoding/decoding ok?
            data = base64.decodebytes(data.encode('ascii')).decode('latin-1')
        else:
            data = unquote(data)
        msg.append('Content-Length: %d' % len(data))
        msg.append('')
        msg.append(data)
        msg = '\n'.join(msg)
        headers = email.message_from_string(msg)
        f = io.StringIO(msg)
        #f.fileno = None     # needed for addinfourl
        return addinfourl(f, headers, url)
def open_data ( self , url , data = None ) : if not isinstance ( url , str ) : raise URLError ( 'data error: proxy support for data protocol currently not implemented' ) # ignore POSTed data # # syntax of data URLs: # dataurl   := "data:" [ mediatype ] [ ";base64" ] "," data # mediatype := [ type "/" subtype ] *( ";" parameter ) # data      := *urlchar # parameter := attribute "=" value try : [ type , data ] = url . split ( ',' , 1 ) except ValueError : raise OSError ( 'data error' , 'bad data URL' ) if not type : type = 'text/plain;charset=US-ASCII' semi = type . rfind ( ';' ) if semi >= 0 and '=' not in type [ semi : ] : encoding = type [ semi + 1 : ] type = type [ : semi ] else : encoding = '' msg = [ ] msg . append ( 'Date: %s' % time . strftime ( '%a, %d %b %Y %H:%M:%S GMT' , time . gmtime ( time . time ( ) ) ) ) msg . append ( 'Content-type: %s' % type ) if encoding == 'base64' : # XXX is this encoding/decoding ok? data = base64 . decodebytes ( data . encode ( 'ascii' ) ) . decode ( 'latin-1' ) else : data = unquote ( data ) msg . append ( 'Content-Length: %d' % len ( data ) ) msg . append ( '' ) msg . append ( data ) msg = '\n' . join ( msg ) headers = email . message_from_string ( msg ) f = io . StringIO ( msg ) #f.fileno = None     # needed for addinfourl return addinfourl ( f , headers , url )