Gambas France BETA


Pas de compte ? Incription

Recupérer une api

1
AuteurMessages
décapode#1 Posté le 10/1/2014 à 15:09:33
Salut la classe :sunny:

Quelqu'un sait il comment récupérer une api, en python ça donne ça :

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import xmlrpclib, urllib2, time, re, sys

# API de Production
api = xmlrpclib.ServerProxy('https://rpc.gandi.net/xmlrpc/')

Merci
gambix#2 Posté le 10/1/2014 à 21:16:01
Faire simple !comment cela une api ?
Moins de texte dans une signature c'est agrandir son espace.
décapode#3 Posté le 11/1/2014 à 08:47:43
comme ça http://wiki.gandi.net/fr/xml-api

Ca par exemple ne fonctionne pas :

1
2
3
4
5
6
7
8
9
PUBLIC SUB Main()
DIM reader AS XmlReader
reader = NEW XmlReader
TRY reader.Open("https://rpc.gandi.net/xmlrpc/")
IF ERROR THEN
PRINT "Error"
RETURN
ENDIF
END
Flachy Joe#4 Posté le 11/1/2014 à 10:08:35
Iguane : Il Gambas Uniquement pour Activer ses NEuronesSalut,
Pour récupérer des infos via HTTP, tu peux utiliser l'objet HttpClient du composant gb.net.curl.
;) Flachy Joe ;)
décapode#5 Posté le 11/1/2014 à 11:07:11
:sunny:
j'ai déjà essayé ça :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
PUBLIC url AS STRING

PUBLIC SUB Form_Open()
DIM reader AS XmlReader
DIM h AS HttpClient
DIM buffer AS STRING
DIM doc AS XmlDocument
h = NEW HttpClient AS "h"
h.URL = "https://rpc.gandi.net/xmlrpc/"
h.Async = FALSE
h.Timeout = 60
h.Get
' reader.Read
IF h.Status < 0 THEN
PRINT "ERROR"
ELSE
' Success - read the data
IF Lof(h) THEN READ #h, buffer, Lof(h)
PRINT buffer
END IF
END


retour : 'Method not allowed'
gambix#6 Posté le 11/1/2014 à 13:57:51
Faire simple !Tu ne dois pas utiliser read mais h.peek()

Moins de texte dans une signature c'est agrandir son espace.
décapode#7 Posté le 11/1/2014 à 15:10:23
Désolé. Comprend pas :scratch:
gambix#8 Posté le 11/1/2014 à 17:27:25
Faire simple !Buffer= h.peek()

A la place de ta ligne read
Moins de texte dans une signature c'est agrandir son espace.
décapode#9 Posté le 11/1/2014 à 17:40:18
...Method not allowed
C'est au départ que le type de requète n'est pas bon..
décapode#10 Posté le 12/1/2014 à 08:52:28
il semble qu'il faille passer par le Gb.xml.rpc

Exemple : http://gambas.8142.n7.nabble.com/XmlRpc-td24076.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
' Gambas module file
PUBLIC SUB Main()

DIM RpcF AS RpcFunction
DIM myStruc AS RpcStruct
DIM client AS RpcClient
DIM hVar AS NEW Variant[]
DIM ret AS VARIANT
DIM a AS INTEGER
DIM name AS STRING
DIM dType AS INTEGER

a = 0

RpcF = NEW RpcFunction("sample.sumAndDifference", [XmlRpc.xInteger,
XmlRpc.xInteger], XmlRpc.xStruct)
client = NEW RpcClient(RpcF)
client.URL = "[url=http://xmlrpc-c.sourceforge.net/api/sample.php]http://xmlrpc-c.sourceforge.net/api/sample.php[/url]"
hVar.Add(5)
hVar.Add(3)

myStruc = client.Call(hVar) '<<<< ça plante là
DO WHILE a < myStruc.Count
name = myStruc.Key(a)
dType = myStruc.dataType(a)
ret = myStruc.Value(a)

DEBUG "Name = " & name
DEBUG "Type = " & dType
DEBUG "Value = " & ret

INC a
LOOP

END


retour :

MMain.Main.28: Name = sum
MMain.Main.29: Type = 0
MMain.Main.30: Value = 8
MMain.Main.28: Name = difference
MMain.Main.29: Type = 0
MMain.Main.30: Value = 2

La doc est muette ... :(
1