Page 1 sur 1
[OK] Envoyer un lien HTTPS via PB
Publié : mer. 17/juin/2015 17:54
par Ar-S
Salut,
J'aimerai envoyer un lien vers le net via PB sous la forme
https://smsapi.free-mobile.fr/sendmsg?u ... MONMESSAGE
J'y connais pas grand chose en envoi de données web. Il faut surement utiliser InitNetwork() et OpenNetworkConnexion(), peut être aussi SendNetworkString ou/et SendNetworkData mais j'avoue être perdu.
Si vous avez une explication à donner je suis preneur.
P.S : je ne souhaite pas utiliser RunProgram...

Merci
Re: Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 7:37
par Micoute
Bonjoujr Ar-s, moi quand j'ai eut ce problème, on m'avait proposé de faire RunProgram
Code : Tout sélectionner
RunProgram("http://www.google.fr/#q=recette"+Argument$,"","")
je sais que ce n'est pas ça que tu désires, mais je n'ai pas d'autre solution.
Re: Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 7:54
par microdevweb
@Ar-S,
Voici une exemple de code que j'avais fait pour récupérer les résultats de l’euro million (si tu veux je t'envoies tout le soft)
Code : Tout sélectionner
If InitNetwork()=0
MessageRequester("Erreur","Connexion internet impossible...",#PB_MessageRequester_Ok)
End
EndIf
Global RequeteTXT$="http://www.loterie-nationale.be/Controls/Draw/DownloadResults.ashx?"+
"productId=e07ce0de-9072-436f-b6ec-9a7e9475fa6f&StartDate=20040101"+
"&EndDate=20151201&ExportData=True"
FileName$="Resul.csv"
If ReceiveHTTPFile(RequeteTXT$,FileName$)=0
MessageRequester("Erreur","Impossible de charger le fichier de resultat...")
ProcedureReturn #False
EndIf
;...
J'espère que cela pourra t'aider
Re: Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 8:02
par microdevweb
Un autre exemple, cela récupérait des infos sur mon site de musique (rélaiser en Webdev)
ps: le site est hs donc ne fonctionne plus
Code : Tout sélectionner
; ***************************************************************************************************************
; Easy-musique 1.0
; Network
; Debut: 29 mars 2014
; Fin :
; Version PB: 5.22
; © www.AllDev.be Dévellopeur Bielen Pierre
; ***************************************************************************************************************
Structure Type_Musique
Type.s
Id.s
EndStructure
Global NewList mesType_Musqiue.Type_Musique()
Structure Difficulte
Difficulte.s
Id.s
EndStructure
Global NewList mesDifficulte.Difficulte()
Structure Lst_Partition
Id.s
EndStructure
Global NewList maLst_Partition.Lst_Partition()
If InitNetwork()=0
MessageRequester("Erreur","InitNetwork a échoué...",#PB_MessageRequester_Ok)
EndIf
Declare Charge_Type_Musique()
Declare Charge_Lst_Difficulte()
Procedure Charge_Type_Musique()
ClearList(mesType_Musqiue())
fichier$="LST_TYPE.txt"
If ReceiveHTTPFile("http://www.easy-musique.com/EASY_MUSIQUE_WEB/FR/ENV_LST_TYPE.awp",fichier$)=0
MessageRequester("Erreur","La requete sur easy-musique à échouée...")
ProcedureReturn #False
EndIf
OpenFile(0,fichier$)
If ReadAsciiCharacter(0)<>4
FileSeek(0,Loc(0)-1)
AddElement(mesType_Musqiue())
While Eof(0)=0
Partie$=Chr(ReadAsciiCharacter(0))
If Partie$="/"
Repeat
Partie$=Chr(ReadAsciiCharacter(0))
If Partie$<>"|" And Eof(0)=0
mesType_Musqiue()\Id+Partie$
Else
If ReadAsciiCharacter(0)<>4
FileSeek(0,Loc(0)-1)
AddElement(mesType_Musqiue())
Else
Break
EndIf
EndIf
Until Partie$="|"
EndIf
If Partie$<>"/" And Partie$<>"|" And Eof(0)=0
mesType_Musqiue()\Type+Partie$
EndIf
Wend
EndIf
CloseFile(0)
DeleteFile(fichier$,#PB_FileSystem_Force)
EndProcedure
Procedure Charge_Lst_Difficulte()
ClearList(mesDifficulte())
fichier$="LST_Difficultes.txt"
If ReceiveHTTPFile("http://www.easy-musique.com/EASY_MUSIQUE_WEB/FR/ENV_LIST_DIFFICULTE.awp",fichier$)=0
MessageRequester("Erreur","La requete sur easy-musique à échouée...")
ProcedureReturn #False
EndIf
OpenFile(0,fichier$)
If ReadAsciiCharacter(0)<>4
FileSeek(0,Loc(0)-1)
AddElement(mesDifficulte())
While Eof(0)=0
Partie$=Chr(ReadAsciiCharacter(0))
If Partie$="/"
Repeat
Partie$=Chr(ReadAsciiCharacter(0))
If Partie$<>"|" And Eof(0)=0
mesDifficulte()\Id+Partie$
Else
If ReadAsciiCharacter(0)<>4
AddElement(mesDifficulte())
FileSeek(0,Loc(0)-1)
Else
Break
EndIf
EndIf
Until Partie$="|"
EndIf
If Partie$<>"/" And Partie$<>"|" And Eof(0)=0
mesDifficulte()\Difficulte+Partie$
EndIf
Wend
EndIf
CloseFile(0)
DeleteFile(fichier$,#PB_FileSystem_Force)
EndProcedure
Procedure Charge_Lst_Partition(Type_Partition.l,Difficulte.l)
ClearList(maLst_Partition())
fichier$="LST_Parition.txt"
requette$="http://www.easy-musique.com/EASY_MUSIQUE_WEB/FR/ENV_LISTE_PARTITION.awp"
If Type_Partition>0
requette$+"?TYPE="+Str(Type_Partition)
EndIf
If Difficulte>0
requette$+"&DIFF="+Str(Difficulte)
EndIf
If ReceiveHTTPFile(requette$,fichier$)=0
MessageRequester("Erreur","La requete sur easy-musique à échouée...")
ProcedureReturn #False
EndIf
OpenFile(0,fichier$)
If ReadAsciiCharacter(0)<>4
AddElement(maLst_Partition())
FileSeek(0,Loc(0)-1)
While Eof(0)=0
Partie$=Chr(ReadAsciiCharacter(0))
If Partie$<>"/"
maLst_Partition()\Id+Partie$
EndIf
If Partie$="/"
If ReadAsciiCharacter(0)<>4
FileSeek(0,Loc(0)-1)
AddElement(maLst_Partition())
Else
Break
EndIf
EndIf
Wend
EndIf
CloseFile(0)
DeleteFile(fichier$,#PB_FileSystem_Force)
EndProcedure
Procedure Charge_Fiche_Partition(ID_Partition$)
fichier$="FICHE_Parition.txt"
requette$="http://www.easy-musique.com/EASY_MUSIQUE_WEB/FR/ENV_FICHE_PARTITION.awp"
requette$+"?ID_PARTITION="+ID_Partition$
If ReceiveHTTPFile(requette$,fichier$)=0
MessageRequester("Erreur","La requete sur easy-musique à échouée...")
ProcedureReturn #False
EndIf
EndProcedure
Re: Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 9:35
par Marc56
Le problème est que le liens que souhaite utiliser Ar-S est en http
s (http sécurisé)
et que
ReceiveHTTPFile ne gère pas le https
http://stackoverflow.com/questions/2644 ... -purebasic
Si http est un simple protocole de dialogue texte, https quant à lui nécessite le cryptage du flux et la vérification du certificat serveur (ce que fait tout navigateur d'une manière transparente)
Solutions: Utiliser un programme externe (tel que cité dans l'article) ou utiliser un WebGadget, qu'on ouvre en petit et qu'on referme dès la connexion effectuée. Cela fonctionne, puisque le webgadget de PB utilise le moteur "web" de l'os
http://www.purebasic.com/french/documen ... adget.html

Re: Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 11:38
par Ar-S
Merci pour tes com'.
Je ne désire pas télécharger un fichier ou des données ça je sais le faire.. Je veux envoyer en POST le lien https.
J'ai pas pensé au webgadget tout simple... J'essayerai ce soir.
Re: Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 12:58
par Marc56
Si tu veux transformer le contenu de ta requête GET en requête POST (afin de dépasser les 255 caractères possibles et ne pas voir le contenu dans l'url),
je n'ai pas testé, mais ceci peut peut-être te convenir ? (post Atlante)
http://www.purebasic.fr/french/viewtopi ... =1&t=12032
Mais si le serveur est en HTTPS, cela ne fonctionnera pas.
Re: Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 13:20
par falsam
Malgré son nom, ReceiveHTTPFile est une solution qui fonctionne pour envoyer des données.
Exemple d'un code (
trés peu de lignes) qui permet d'envoyer un pseudo et un message.
Code : Tout sélectionner
InitNetwork()
;url
url.s = "http://s242132022.onlinehome.fr/racal/usersay0.php"
;variables
user.s = URLEncoder("falsam")
say.s = URLEncoder("Test avec ReceiveHTTPFile")
;Envoi des données
ReceiveHTTPFile(url + "?" + "&user=" + User + "&say=" + say, "log.txt")
Remplacez la variable user par le pseudo de votre choix et la variable say par le message que vous souhaitez.
Vérifier le résultat sur ce lien
http://s242132022.onlinehome.fr/racal/usersayresult.php
Re: Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 13:53
par Ar-S
Merci pour l'info Falsam, j'ai réussi en fin de compte avec un simple webgadget et un setgadgettext
(comme d'hab j'étais parti dans un pourquoi faire simple quand on peut faire compliqué !)p
Du coup je peux (enfin ma petite femme peut) me SMS des messages du PC via PB.
ça marche chez l'opérateur freemobile, il faut activer l'option dans son panneau de config.
Faite une interface avec un editorgadget, un bouton pour envoyer et un webgadget pas forcement visible.
Ensuite un simple
Code : Tout sélectionner
Procedure.s Transform(message.s)
; Transforme les "é è espace" en caractère html
NewText.s = ReplaceString(message.s," ","%20")
NewText.s = ReplaceString(message.s,"è","%E8")
NewText.s = ReplaceString(message.s,"é","%E9")
ProcedureReturn NewText.s
EndProcedure
MONMESSAGE.s = Transform("Coucou c'est moi !")
setgadgettext(#webgadget,"https://smsapi.free-mobile.fr/sendmsg?user=MONID&pass=MONPASS&msg="+MONMESSAGE.s)
Autre conseils, vérifiez que votre message < 256 car
Voilou
Re: [OK] Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 14:00
par falsam
A quoi ça sert que Fred se décarcasse
URLEncoder(message) remplacera ta procédure Transform(message.s)
Re: Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 16:32
par Marc56
Attention: ça c'est une requête GET et pas POST, tes données restent en clair dans l'url dans le cache de navigateur, l'historique. À ne pas utiliser dans un lieu public.

Re: Envoyer un lien HTTPS via PB
Publié : jeu. 18/juin/2015 16:41
par Ar-S
C'est claire, strictement à usage privé
