Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



XMLRPC

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

 

Vložit nový příspěvek

Jméno:

Předmět:

Příspěvek:

*AGGRESSIVE* O:-) :-/ :-P *BLUSH* *BYE* :'( *DASH* 8-) *DRINK* :-| *THUMBUP* *SOS* *KISSED* :-* *OK* *SECRET* *STOP*

Pohlaví:

Muž, Žena

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

Re: XMLRPC

Autor: Holuda

23:30:03 22.10.2009

Díky moc za reakci. Metoda update_forecast() je jakoby typu void, tzn. že jenom zapisje do slovníku to je vše akorát v případě, že metodu vyvolám se špatným heslem, tak vrátí nějáký varovný řetezec.

Citovat příspěvek

 

Re: XMLRPC

Autor: mambo

23:13:28 22.10.2009

Funkce update_forecast() ti vrací None, což není zrova ono, že. Až tohle vyřešíš, tak tě ještě čeká vyřešit problém s utf-8/unicode, pokud trváš na diakritice. Napovím: data se sice pošlou v utf8, ale parser serveru vrací unicode.

Citovat příspěvek

 

XMLRPC

Autor: Holuda

21:18:49 22.10.2009

Dobrý den,
potřeboval bych pomoct s jednoduchou webovou službou XML-RPC. Jedná se o program pro studijní účely, takže to nedělá nic extra. Jedná se o předpovď počasí. Na servru jsou implementovány 2 třídy. Jedna Forecast, která obsahuje proměné s informacemi o počasí, tzn. nějáký description, wind_force a temperature a potom jednu metodu get_list(), která vrací řetezec, všech proměných.
Další třídou je ForecastCalendar, která má v sobě 2 metody. Jedna je get_Forecast(), pro vrácení předpovědi pro zadané datum a druhá je update_Forecast(), pro zadání informací pro dané datum, tato metoda je chráněná heslem, které je nastavenu v konstruktoru. Asi mi něco uniká ale furt nemůžu přijít, co. Prosím pomožte mi pořád mi to hází chybu.

Kod serveru:

# -*- coding: utf-8 -*-
from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler


class Forecast(object):

def __init__(self,d,wf,t):
self.description = d
self.wind_force = wf
self.temperature = t

def get_list(self):
return "\n"+self.description+"\n"+"ryhlost větru: "+self.wind_force+"m/s\n"+"teplota: "+self.temperature+"°C"

class ForecastCalendar(object):

def __init__(self,p):
self.password = p
self.slovnik = {}

def get_forecast(self,date):
if not self.slovnik.has_key(date):
return "Předpověď na "+date+" není!!!\n"
else:
return "Předpověď na "+date+" je: "+self.slovnik[date].get_list()

def update_forecast(self,p,date,d,wf,t):
if p == self.password:
f = Forecast(d,wf,t)
self.slovnik[date] = f
else:
return "vypadni!!!"

#-------------------hlavní program -----------------------

def main():
"""
fc = ForecastCalendar("David")
print fc.get_forecast("1.1.2009")
fc.update_forecast("David","20.6.2009","bude to velice špatně","120","50")
print fc.get_forecast("20.6.2009")
"""
server_address = ('localhost', 10000)

server = SimpleXMLRPCServer(server_address)

xmlrpcServer = ForecastCalendar("David")
server.register_instance(xmlrpcServer) #zaregistruju třídu CalcService()
server.register_introspection_functions() #Zaregistruju metodu

print "Starting Chat XML-RPC server, use to stop"

server.serve_forever()


if __name__ == "__main__":
main()

a kod klienta:

# -*- coding: utf-8 -*-
import xmlrpclib


s = xmlrpclib.ServerProxy('http://localhost:10000')


print s.get_forecast("1.1.2009")
s.update_forecast("David","20.6.2009","bude to velice špatně","120","50")
print s.get_forecast("20.6.2009")

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: