Italian Problema Json

VitWeb

Member
Licensed User
Buongiorno,

Sono tornato a B4A dopo ben 8 anni (ho sviluppato un paio di app nel 2012) e... ho dimenticato (quasi tutto). Avevo iniziato con B4ppc (mitico Erel!) e mi sentivo in paradiso nell'utilizzare linguaggi piuttosto vicini al mio cuore (uso Visual Basic da quando era istallato di default sulle macchine IBM: Basic, GWBasic, ecc.). Scusate la digressione e... torno al mio problema.

Come dicevo sono parecchio arrugginito nella programmazione B4A. Ho bisogno di leggere un file Json generato da un server Linux mediante una pagina PHP richiamata dall'app. Alla fine del lavoro la stringa (un array) viene restituita con Job.success. Ho trovato una vecchia app tra quelle del forum e l'ho adattata a php 7.2 e alle nuove esigenze di Android. E tutto funziona bene fin quando uso un server xampp o un NAS locale: la stringa viene ben formata e restituita correttamente. Se, invece, metto lo stesso identico file php su un server remoto nom restituisce una cippa, anzi dà errore. Il server usa una connessione protetta. Potrebbe essere questo il problema?

Questo il listato:
Lista servizi offerti:
Sub Activity_Create(FirstTime As Boolean)

    'Do not forget to load the layout file created with the visual designer. For example:

    'Activity.LoadLayout("Layout1")

  

    Activity.LoadLayout("Servizi")

    Activity.Title ="Servizi"

  

    Label1.Visible=False

  

    ListView1.TwoLinesLayout.Label.Color=Colors.DarkGray

  

    ServerIP="locridestore.it"

  

    IdStore=1

  

    Dim GetServices As HttpJob

    GetServices.Initialize("GetServ", Me)

    GetServices.download2("https://" & ServerIP & "/appuntamenti.php?IdStore=1", Array As String ("action", "GetServices"))

End Sub



Sub Activity_Resume



End Sub



Sub Activity_Pause (UserClosed As Boolean)



End Sub



Sub JobDone(Job As HttpJob)

    ProgressDialogHide

    If Job.Success Then

        Dim res As String

        res = Job.GetString

        Log("Back from Job:" & Job.JobName )

        Log("Response from server: " & res)

              

        Dim Json As JSONParser

      

      

        Json.Initialize(res)

      

        Select Job.JobName

                      

            Case "GetServ"

                Dim ListOfServices As List

                Dim nameService As String

                Dim durationService  As Int

                Dim costService As Int

                          

                Label1.Visible=True

                Label1.Text="Response " & Job.GetString

              

                ListOfServices = Json.NextArray

              

                ListView1.Clear

              

                If ListOfServices.Size=0 Then

                    ListView1.AddSingleLine ("Nessun servizio trovato...")

                Else

                    For i = 0 To ListOfServices.Size - 1

                        Dim mServices As Map

                        mServices = ListOfServices.Get(i)

                        nameService = mServices.Get("NomeTratt")

                        durationService = mServices.Get("Durata")

                        costService = mServices.Get("Costo")

                        ListView1.AddSingleLine (nameService & ", " & durationService &"min., " & costService&"Eur")

                    Next

                End If

      

            'Case "CountP"

            '    PersonsListview.Clear

            '    PersonsListview.AddSingleLine ("Persons in table: " & parser.NextValue)

              

            'Case "InsertNewP"

            '    PersonsListview.Clear

            '    PersonsListview.AddSingleLine (parser.NextValue)

              

        End Select

    Else

        ToastMessageShow("Error: " & Job.ErrorMessage, True)

    End If

    Job.Release

End Sub

E questo è l'errore:
1590758999968.png


Qualcuno riesce a darmi una mano, per favore?
 

VitWeb

Member
Licensed User
Ragazzi, ho risolto: la stringa di trasmissione del file era errata perchè non scrivevo "&" nel file php. Mi scuso per avervi fatto perdere tempo ad analizzare il codice.

Happy coding a tutti voi!

Vittorio
 
Top