Page 1 sur 1
Soucis avec ReceiveHTTPFile (Résolu)
Publié : mer. 15/févr./2017 21:01
par Jackymb
Bonsoir à tous,
Je bute sur un soucis avec: ReceiveHTTPFile.
ça fonctionne bien avec DropBox, mais j'ai un problème avec OneDrive (et GoogleDrive), il ne récupère pas le fichier correctement.
code utilisé:
Code : Tout sélectionner
InitNetwork()
;Lien$ = "https://1drv.ms/i/s!AiEBAUWrCd5FmSXBLHC4iYcMM-5v"
;NomDeFichier$ = "d:\#Downloads\" + "Onedrive.jpg"
Lien$ = "https://www.dropbox.com/s/4qxy5znaeq3xxqj/Data.jpg?dl=1"
NomDeFichier$ = "d:\#Downloads\" + "Data_db.jpg"
If ReceiveHTTPFile(Lien$, NomDeFichier$)
Debug "Succès"
Else
Debug "Echec"
EndIf
Quelqu'un aurait une explication?
Merci pour vos réponses.
Jacky
Re: Soucis avec ReceiveHTTPFile
Publié : mer. 15/févr./2017 21:29
par GallyHC
Bonjour,
Perso, je ne vois que la destination qui pourrait posé problème (genre "#Downloads" un "s" en trop), car pour moi aucun problème.
Code : Tout sélectionner
InitNetwork()
Lien$ = "https://www.dropbox.com/s/4qxy5znaeq3xxqj/Data.jpg?dl=1"
NomDeFichier$ = "d:\Data_db.jpg"
If ReceiveHTTPFile(Lien$, NomDeFichier$)
Debug "Succès"
Else
Debug "Echec"
EndIf
Cordialement,
GallyHC
Re: Soucis avec ReceiveHTTPFile
Publié : mer. 15/févr./2017 22:02
par Jackymb
Bonsoir GallyHC,
Merci d'avoir regardé, mais c'est avec onedrive que çà me pose soucis.
Le fichier est bien dans le même répertoire, mais incorrect.
Code : Tout sélectionner
InitNetwork()
Lien$ = "https://1drv.ms/i/s!AiEBAUWrCd5FmSXBLHC4iYcMM-5v"
NomDeFichier$ = "d:\#Downloads\" + "Onedrive.jpg"
If ReceiveHTTPFile(Lien$, NomDeFichier$)
Debug "Succès"
Else
Debug "Echec"
EndIf
Cordialement,
Jacky
Re: Soucis avec ReceiveHTTPFile
Publié : mer. 15/févr./2017 22:09
par GallyHC
Je viens de faire le test en créant le répertoire "#Downloads". Le ficher "Onedrive.jpg" est bien télécharger (bon par contre c'est un fichier texte donc aucun rapport avec un .jpg). met plutôt "Onedrive.txt".
Cordialement,
GallyHC
Re: Soucis avec ReceiveHTTPFile
Publié : mer. 15/févr./2017 22:16
par Jackymb
pourquoi?
Le fichier est bien une image "JPG", puisque c'est moi qui l'est mis.
essai le lien en direct dans le navigateur:
https://1drv.ms/i/s!AiEBAUWrCd5FmSXBLHC4iYcMM-5v
Cordialement.
Jacky
Re: Soucis avec ReceiveHTTPFile
Publié : mer. 15/févr./2017 22:34
par cage
Code : Tout sélectionner
InitNetwork()
Lien$ = "https://1drv.ms/i/s!AiEBAUWrCd5FmSXBLHC4iYcMM-5v"
Header$ = GetHTTPHeader(Lien$)
Debug Header$
End
Ce bout de code affiche
Code : Tout sélectionner
HTTP/1.1 405 Method Not Allowed
Content-Length: 103
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/8.5
X-MSNSERVER: DM5SCH102230223
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-QosStats: {"ApiId":0,"ResultType":2,"SourcePropertyId":0,"TargetPropertyId":42}
X-ThrowSite: 4d6d.dbc6
X-AsmVersion: UNKNOWN; 16.0.0.0
X-MSEdge-Ref: Ref A: CE673FA82C6F4E54A365FD6389707B56 Ref B: PRASCHEDGE0406 Ref C: Wed Feb 15 13:25:17 2017 PST
Date: Wed, 15 Feb 2017 21:25:17 GMT
Il est donc normal de ne pouvoir récupérer le fichier.
Le fichier récupéré est la page html que l'on obtient avec un navigateur et qui permet de télécharger le fichier.
Il manque quelque-chose comme ?dl=1 (dropbox) a l'URL OneDrive
Re: Soucis avec ReceiveHTTPFile
Publié : jeu. 16/févr./2017 1:12
par GallyHC
La tu pointe sur une page HTML qui affiche ton image. Le lien de l'image est "
https://by3302files.storage.live.com/y3 ... ode=center".
Cordialement,
GallyHC
Re: Soucis avec ReceiveHTTPFile
Publié : jeu. 16/févr./2017 1:22
par Jackymb
Bonsoir,
Avec les réponses que vous m'avez fournis et des recherches sur le net, j'ai résolu mon soucis.
OneDrive:
Après avoir récupéré le lien du fichier, il faut modifié l'URL en replaçant
embed par
download
lien original: "
https://onedrive.live.com/[b]
embed[/b]?cid=45DE09AB45010121&resid=45DE09AB45010121%213237&authkey=AHjJ0Wc-_jtqpeo"
lien modifié: "
https://onedrive.live.com/[b]
download[/b]?cid=45DE09AB45010121&resid=45DE09AB45010121%213237&authkey=AHjJ0Wc-_jtqpeo"
Code : Tout sélectionner
InitNetwork()
Lien$ = "https://onedrive.live.com/download?cid=45DE09AB45010121&resid=45DE09AB45010121%213237&authkey=AHjJ0Wc-_jtqpeo"
NomDeFichier$ = "c:\Users\Jacky\Downloads\" + "Onedrive.jpg"
If ReceiveHTTPFile(Lien$, NomDeFichier$)
Debug "Succès"
Else
Debug "Echec"
EndIf
GoogleDrive:
Après avoir récupéré le lien du fichier, il faut modifié l'URL en gardant id du fichier et modifier l'url
lien original: "
https://drive.google.com/file/d/0B_PDPZ4SJxWielNCSkYxNDBMUG8/view?usp=sharing"
lien modifié: "
https://drive.google.com/[b]
uc?export=download&id=[/b]
0B_PDPZ4SJxWielNCSkYxNDBMUG8"
Code : Tout sélectionner
InitNetwork()
;https://drive.google.com/file/d/0B_PDPZ4SJxWielNCSkYxNDBMUG8/view?usp=sharing
Lien$ = "https://drive.google.com/uc?export=download&id=0B_PDPZ4SJxWielNCSkYxNDBMUG8"
NomDeFichier$ = "c:\Users\Jacky\Downloads\" + "Googledrive.png"
If ReceiveHTTPFile(Lien$, NomDeFichier$)
Debug "Succès"
Else
Debug "Echec"
EndIf
Voilà si çà peut servir.
Cordialement.
Jacky
Re: Soucis avec ReceiveHTTPFile (Résolu)
Publié : jeu. 16/févr./2017 9:02
par boby
Toujours bon à savoir, merci d'avoir fait part de ta solution !
Re: Soucis avec ReceiveHTTPFile (Résolu)
Publié : jeu. 16/févr./2017 10:33
par cage
Merci pour le retour.
Re: Soucis avec ReceiveHTTPFile (Résolu)
Publié : jeu. 16/févr./2017 15:13
par Ar-S
Petite procédure pour corriger ça tout seul.
Code : Tout sélectionner
Procedure.s ParseDriveUrl(url$)
;Ar-S
If FindString (url$,"google",0, #PB_String_NoCase) > 0
ID$ = RemoveString(url$,"https://drive.google.com/file/d/")
ID$ = RemoveString(ID$,"/view?usp=sharing")
DownloadLink.s = "https://drive.google.com/uc?export=download&id="+ID$
ElseIf FindString (url$,"onedrive",0, #PB_String_NoCase) > 0
DownloadLink.s = ReplaceString(url$,"embed","download")
Else
DownloadLink = "Bad Link Error"
EndIf
ProcedureReturn DownloadLink.s
EndProcedure
InitNetwork()
; Correction automatique des URI Gdrive et Onedrive
LienOdrive$ = ParseDriveUrl("https://onedrive.live.com/embed?cid=45DE09AB45010121&resid=45DE09AB45010121%213237&authkey=AHjJ0Wc-_jtqpeo")
LienGdrive$ = ParseDriveUrl("https://drive.google.com/file/d/0B_PDPZ4SJxWielNCSkYxNDBMUG8/view?usp=sharing")
; destination
GOOGFILE$ = "F:\Googledrive.png"
ODRIVEFILE$ = "F:\Odrivedrive.png"
If ReceiveHTTPFile(LienGdrive$, GOOGFILE$)
Debug "Succès"
Else
Debug "Echec"
EndIf
If ReceiveHTTPFile(LienOdrive$, ODRIVEFILE$)
Debug "Succès"
Else
Debug "Echec"
EndIf
Re: Soucis avec ReceiveHTTPFile (Résolu)
Publié : jeu. 16/févr./2017 16:01
par Jackymb
Bonjour,
Merci Ar-S pour la proc. C'était ma prochaine étape à écrire.
Tu as été plus rapide, Je me permettrai de la réutiliser.
cordialement.
Jacky