def upload(self, array, fields=None, table="MyDB", configfile=None):
        """
        Upload an array to a personal database using SOAP POST protocol.
        http://skyserver.sdss3.org/casjobs/services/jobs.asmx?op=UploadData
        """

        wsid=''
        password=''
        if configfile is None:
            configfile = "CasJobs.config"
        logger.info("Reading config file: %s"%configfile)
        lines = open(configfile,'r').readlines()
        for line in lines:
            k,v = line.strip().split('=')
            if k == 'wsid': wsid = v
            if k == 'password': password = v

        logger.info("Attempting to drop table: %s"%table)
        self.drop(table)
     
        SOAP_TEMPLATE = """
        <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                         xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                         xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
          <soap12:Body>
            <UploadData xmlns="http://Services.Cas.jhu.edu">
              <wsid>%s</wsid>
              <pw>%s</pw>
              <tableName>%s</tableName>
              <data>%s</data>
              <tableExists>%s</tableExists>
            </UploadData>
          </soap12:Body>
        </soap12:Envelope>
        """
     
        logger.info("Writing array...")
        s = io.StringIO()
        np.savetxt(s,array,delimiter=',',fmt="%.10g")
        tb_data = ''
        if fields is not None: 
            tb_data += ','.join(f for f in fields)+'\n'
        tb_data += s.getvalue()
     
        message = SOAP_TEMPLATE % (wsid, password, table, tb_data, "false")
        
        #construct and send the header
        webservice = httpcl.HTTP("skyserver.sdss3.org")
        webservice.putrequest("POST", "/casjobs/services/jobs.asmx")
        webservice.putheader("Host", "skyserver.sdss3.org")
        webservice.putheader("Content-type", "text/xml; charset=\"UTF-8\"")
        webservice.putheader("Content-length", "%d" % len(message))
        webservice.endheaders()
        logger.info("Sending SOAP POST message...")
        webservice.send(message)
         
        # get the response
        statuscode, statusmessage, header = webservice.getreply()
        print("Response: ", statuscode, statusmessage)
        print("headers: ", header)
        res = webservice.getfile().read()
        print(res)
def upload ( self , array , fields = None , table = "MyDB" , configfile = None ) : wsid = '' password = '' if configfile is None : configfile = "CasJobs.config" logger . info ( "Reading config file: %s" % configfile ) lines = open ( configfile , 'r' ) . readlines ( ) for line in lines : k , v = line . strip ( ) . split ( '=' ) if k == 'wsid' : wsid = v if k == 'password' : password = v logger . info ( "Attempting to drop table: %s" % table ) self . drop ( table ) SOAP_TEMPLATE = """
        <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                         xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                         xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
          <soap12:Body>
            <UploadData xmlns="http://Services.Cas.jhu.edu">
              <wsid>%s</wsid>
              <pw>%s</pw>
              <tableName>%s</tableName>
              <data>%s</data>
              <tableExists>%s</tableExists>
            </UploadData>
          </soap12:Body>
        </soap12:Envelope>
        """ logger . info ( "Writing array..." ) s = io . StringIO ( ) np . savetxt ( s , array , delimiter = ',' , fmt = "%.10g" ) tb_data = '' if fields is not None : tb_data += ',' . join ( f for f in fields ) + '\n' tb_data += s . getvalue ( ) message = SOAP_TEMPLATE % ( wsid , password , table , tb_data , "false" ) webservice = httpcl . HTTP ( "skyserver.sdss3.org" ) webservice . putrequest ( "POST" , "/casjobs/services/jobs.asmx" ) webservice . putheader ( "Host" , "skyserver.sdss3.org" ) webservice . putheader ( "Content-type" , "text/xml; charset=\"UTF-8\"" ) webservice . putheader ( "Content-length" , "%d" % len ( message ) ) webservice . endheaders ( ) logger . info ( "Sending SOAP POST message..." ) webservice . send ( message ) statuscode , statusmessage , header = webservice . getreply ( ) print ( "Response: " , statuscode , statusmessage ) print ( "headers: " , header ) res = webservice . getfile ( ) . read ( ) print ( res )
Upload an array to a personal database using SOAP POST protocol.
        http://skyserver.sdss3.org/casjobs/services/jobs.asmx?op=UploadData