Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD8/9] requete HTTP autre que method GET,POST avec entete sup et identification

4 réponses
Avatar
nocay
Bonjour,
je cherche le moyen de faire une requête HTTP avec la méthode PROPFIND
avec un login password et a passer des entêtes supplementaires
necessaire pour faire cette requête avec cette méthode.

Connaissez vous un moyen de faire ça en Windev ?

Je suis dans une appli Windev de Web Service en multi-thread (appelé via
apache).
A priori la méthode HTTPRequete ne fonctionne pas (que GET/POST) et est
de plus très mal documentée pour les entêtes supplémentaires.
J'ai essayé l'activeX XMLHttp mais il fonctionne deux fois puis arrête
de retourner une réponse jusqu'à ce que je redémarre mon serveur apache.
J'ai essayé ensuite un assembli DotNet mais cela ne fonctionne pas
correctement en multithread.
Ces deux dernière méthodes fonctionne correctement dans une application
conventionnelle Windev mais des que j'intègre le code pour un appel dans
un WebService en multi-thread impossible d'avoir un fonctionnement correct.

Cordialement et merci d'avance.

4 réponses

Avatar
David B
il faut utiliser les fonctions de socket de windev plutot ke httprequete()
pour faire autre chose que du get/post. cela est plus rapide et mieux
parametrable

"nocay" a écrit dans le message de
news:425f9ccf$0$3128$
Bonjour,
je cherche le moyen de faire une requête HTTP avec la méthode PROPFIND
avec un login password et a passer des entêtes supplementaires
necessaire pour faire cette requête avec cette méthode.

Connaissez vous un moyen de faire ça en Windev ?

Je suis dans une appli Windev de Web Service en multi-thread (appelé via
apache).
A priori la méthode HTTPRequete ne fonctionne pas (que GET/POST) et est
de plus très mal documentée pour les entêtes supplémentaires.
J'ai essayé l'activeX XMLHttp mais il fonctionne deux fois puis arrête
de retourner une réponse jusqu'à ce que je redémarre mon serveur apache.
J'ai essayé ensuite un assembli DotNet mais cela ne fonctionne pas
correctement en multithread.
Ces deux dernière méthodes fonctionne correctement dans une application
conventionnelle Windev mais des que j'intègre le code pour un appel dans
un WebService en multi-thread impossible d'avoir un fonctionnement


correct.

Cordialement et merci d'avance.


Avatar
nocay
tout d'abord merci pour la réponse :-)
avez vous un petit exemple a me fournir car en lisant la doc comme
windev sur les socket ça ne me parait pas évident de prime abord de
faire l'équivalent du httprequete.
Je suis loin d'être un pro des protocoles réseaux et je ne sais pas
encore comment gérer du http via les socket :-)

David B a écrit :
il faut utiliser les fonctions de socket de windev plutot ke httprequete()
pour faire autre chose que du get/post. cela est plus rapide et mieux
parametrable

"nocay" a écrit dans le message de
news:425f9ccf$0$3128$

Bonjour,
je cherche le moyen de faire une requête HTTP avec la méthode PROPFIND
avec un login password et a passer des entêtes supplementaires
necessaire pour faire cette requête avec cette méthode.

Connaissez vous un moyen de faire ça en Windev ?

Je suis dans une appli Windev de Web Service en multi-thread (appelé via
apache).
A priori la méthode HTTPRequete ne fonctionne pas (que GET/POST) et est
de plus très mal documentée pour les entêtes supplémentaires.
J'ai essayé l'activeX XMLHttp mais il fonctionne deux fois puis arrête
de retourner une réponse jusqu'à ce que je redémarre mon serveur apache.
J'ai essayé ensuite un assembli DotNet mais cela ne fonctionne pas
correctement en multithread.
Ces deux dernière méthodes fonctionne correctement dans une application
conventionnelle Windev mais des que j'intègre le code pour un appel dans
un WebService en multi-thread impossible d'avoir un fonctionnement



correct.

Cordialement et merci d'avance.




Avatar
David B
exemple de code possible (attention je fais ça de tête il se peut que je ne
me souvienne pas correctement de certaines fonctions ou que j'ai fait des
erreur de parametres... voir l'aide de windev pour être sur...)
-------
codehtml est une chaine

si socketcree("siteweb",80,www.pcsoft.fr) alors
si socketecrit("siteweb","GET /windev/index.html") alors
codehtml = socketlit("siteweb",faux)
fin
fin

si socketexiste("siteweb") alors socketferme("siteweb")
---------
à adapter pour faire exactement ce que tu veux.
l'avantage du système est que tu n'ouvre qu'une seule fois le socket avec le
site et tu peux récupérer autant de pages de necessaire alors que la
fonction HTTPRequete ouvre de nouveau le socket à chaque page ce qui est
plus lent.

certains sites demandent plus de paramètres qu'un simple get (parfois il
faut donner aussi l'adresse complete et le type de protocole http etc...
voir les different parametres/methodes utilisables sur
http://www.w3.org/Protocols/HTTP/HTTP2.html par exemple). il faut aussi
parfois modifier le protocole avec socketchangemodetransmision() aussi selon
le serveur.

"nocay" a écrit dans le message de
news:4263ebc4$0$3130$
tout d'abord merci pour la réponse :-)
avez vous un petit exemple a me fournir car en lisant la doc comme
windev sur les socket ça ne me parait pas évident de prime abord de
faire l'équivalent du httprequete.
Je suis loin d'être un pro des protocoles réseaux et je ne sais pas
encore comment gérer du http via les socket :-)

David B a écrit :
> il faut utiliser les fonctions de socket de windev plutot ke


httprequete()
> pour faire autre chose que du get/post. cela est plus rapide et mieux
> parametrable
>
> "nocay" a écrit dans le message de
> news:425f9ccf$0$3128$
>
>>Bonjour,
>>je cherche le moyen de faire une requête HTTP avec la méthode PROPFIND
>>avec un login password et a passer des entêtes supplementaires
>>necessaire pour faire cette requête avec cette méthode.
>>
>>Connaissez vous un moyen de faire ça en Windev ?
>>
>>Je suis dans une appli Windev de Web Service en multi-thread (appelé via
>>apache).
>>A priori la méthode HTTPRequete ne fonctionne pas (que GET/POST) et est
>>de plus très mal documentée pour les entêtes supplémentaires.
>>J'ai essayé l'activeX XMLHttp mais il fonctionne deux fois puis arrête
>>de retourner une réponse jusqu'à ce que je redémarre mon serveur apache.
>>J'ai essayé ensuite un assembli DotNet mais cela ne fonctionne pas
>>correctement en multithread.
>>Ces deux dernière méthodes fonctionne correctement dans une application
>>conventionnelle Windev mais des que j'intègre le code pour un appel dans
>>un WebService en multi-thread impossible d'avoir un fonctionnement
>
> correct.
>
>>Cordialement et merci d'avance.


Avatar
nocay
David B a écrit :
exemple de code possible (attention je fais ça de tête il se peut que je ne
me souvienne pas correctement de certaines fonctions ou que j'ai fait des
erreur de parametres... voir l'aide de windev pour être sur...)
-------
codehtml est une chaine

si socketcree("siteweb",80,www.pcsoft.fr) alors
si socketecrit("siteweb","GET /windev/index.html") alors
codehtml = socketlit("siteweb",faux)
fin
fin

si socketexiste("siteweb") alors socketferme("siteweb")
---------
à adapter pour faire exactement ce que tu veux.
l'avantage du système est que tu n'ouvre qu'une seule fois le socket avec le
site et tu peux récupérer autant de pages de necessaire alors que la
fonction HTTPRequete ouvre de nouveau le socket à chaque page ce qui est
plus lent.

certains sites demandent plus de paramètres qu'un simple get (parfois il
faut donner aussi l'adresse complete et le type de protocole http etc...
voir les different parametres/methodes utilisables sur
http://www.w3.org/Protocols/HTTP/HTTP2.html par exemple). il faut aussi
parfois modifier le protocole avec socketchangemodetransmision() aussi selon
le serveur.



Je teste ça et encore merci :-) j'avais plus de solution en reserve