Italian Connessione a Web Service asmx

ildalla83

Member
Licensed User
allora il problema è a monte. Il mio webservice non accetta richieste nel formato
B4X:
http://myservicesite/ws/service.asmx/nome_funzione_chiamata
perchè in quel caso mi risponde
B4X:
Formato della richiesta non riconosciuto. L'URL termina in modo imprevisto con '/TestRispostaServizio'
.
Quindi ho provato ad utilizzare il formato utilizzato con il browser
B4X:
http://myservicesite/ws/service.asmx?op=nome_funzione_chiamata
ma mi sono accorto ora che mi risponde esattamente come farebbe se lo richiamassi da qualsiasi postazione che non sia il mio server IIS
B4X:
Il form di test è disponibile solo per le richieste dal computer locale.
Quindi sono ancora ad uno step precedente, ancora non riesco a invocare una funzione del mio web service
 

ildalla83

Member
Licensed User
Aggiorno tutti riguardo ai miei progressi. Ho seguito una guida e ho creato un file xml contenente la richiesta SOAP.
Ho quindi inserito il file XML come risorsa nel sorgente e l'ho utilizzata nel comando

B4X:
Template = File.ReadString(File.DirAssets,"template.xml")

Quindi ho sistemato il file per la chiamata in base ai parametri che voglio di volta in volta passare

B4X:
Sub BuildRequest (aUser As String, aPass As String) As String
    Dim req As String = Template
    req = req.Replace("$USERNAME$", aUser)
    req = req.Replace("$PASSWORD$", aPass)
    req = req.Replace("$MATRICOLA$", "")
    Return req
End Sub

A questo punto lancio i comandi per invocare la mia funzione

B4X:
 syncJob.PostString(ServiceSite, BuildRequest(User, Pass))
 syncJob.GetRequest.SetContentType("text/xml; charset=utf-8")
 syncJob.GetRequest.SetHeader("SOAPAction", """http://tempuri.org/getElencoDocTutti""")
 Wait for (syncJob) JobDone (syncJob As HttpJob)
 Log(syncJob.success)
 If syncJob.success Then Log(syncJob.getstring)

Risultato: il ws risponde correttamente mandandomi nel log tutto l'xml... Ora la domanda è d'obbligo: come gestisco questi dati? come ottengo un Recordset di dati da poter inserire nella mia form?
 

LucaMs

Expert
Licensed User
Longtime User
Questo è il comando utilizzato
B4X:
syncJob.Download2(ServiceSite, Array As String("username",User,"password",Pass))

Se questo è il metodo che stai chiamando (sempre letto di fretta, eh), richiede 3 parametri, non due:
[WebMethod]
public DataSet getElencoDocTutti(string username, string password, string matricoladev)


P.S. L'ultimo post che vedevo era quello al quale ho risposto; poi, dopo che ho pubblicato la mia risposta, sono comparsi gli altri :eek:, che devo ancora leggere.


EHM... erano già nella pagina succesiva.
 

ildalla83

Member
Licensed User
Grazie per la risposta. Come puoi aver letto sono già oltre. Ora la mia domanda è: ora che ho l'xml di risposta dal WS, come faccio a ciclare e utilizzare i dati ricevuti?
Grazie
 
Top