Italian Scaricare un file da un sito

Sabotto

Active Member
Licensed User
Buonasera. Domandina semplice credo per molti ma non per me alle prime armi
Con questo codice VB.NET scarico un file di testo dal mio sito
B4X:
Dim client As New WebClient()
client.DownloadFile(New Uri("http://www.miosito.it/MiaDir/miofile.txt"), "C:\mioFileScaricato.txt")

Devo fare l'identica cosa con B4A, ovviamente salvando il file in apposita cartella Android
Non sono riuscito a capire l'equivalente dell'oggetto .NET WebClient
Cosa devo usare? OKHTTPUtils2?
Una imbeccatina di codice o link?. Grazie
 

Sabotto

Active Member
Licensed User
Ho provato cosi ma ottengo un errore.
B4X:
    Dim j As HttpJob
    Dim Sito As String = "http://www.miosito.it/MiaDir"
    Dim srcFile As String = "srcMiofile.txt"
    Dim dstFile As String = "dstMioFile.txt"
    Dim SitoFile As String = File.Combine(Sito,srcFile)
    
    j.Initialize("", Me)
    j.Download(SitoFile)
    Wait For (j) JobDone(j As HttpJob)
    If j.Success Then
        Dim out As OutputStream = File.OpenOutput(File.DirRootExternal, dstFile, False)
        File.Copy2(j.GetInputStream, out)
        out.Close
        Log("file scaricato")
    End If
    j.Release

ResponseError. Reason: java.net.UnknownServiceException: CLEARTEXT communication to www.miosito.it not permitted by network security policy, Response:
Il sito è su hosting di Aruba, se puo servire come informazione.
Ma in VB.NET riesco a scaricare il file!
 

Sabotto

Active Member
Licensed User
Ho risolto abilitando sul server Aruba il protocollo "HTTPS".
Ora passerò a fare l'upload e eventualmente scriverò in un altro post. Grazie (vorrei mettere Risolto, ma non riesco a modificare il titolo del post)
 

drgottjr

Well-Known Member
Licensed User
trattandosi di http invece di https, prima di tutto, aggiungi questa linea al tuo manifest:
B4X:
SetApplicationAttribute(android:usesCleartextTraffic, "true")
android non permette http senza questo.

dopo okhttputils2:
B4X:
Dim j As HttpJob
j.Initialize("", Me)
j.Download("http://www.miosito.it/MiaDir/miofile.txt")
Wait For (j) JobDone(j As HttpJob)
If j.Success Then
   dim testo as string = j.getstring       ' j.getstring --->  !!!!! el scaricamento !!!!
   Log("il testo: " & testo)
   ' alora salva il file:
   file.writestring(file.dirinternal, "mioFileScaricato.txt", testo)
else   ' errore!!!
   log("errore: " & j.errormessage)
End If
j.Release

facile, semplice
 
Top