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

Le
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.
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
David B
Le #13997561
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" 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.


nocay
Le #13997401
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" 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.




David B
Le #13997381
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" 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" > 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.


nocay
Le #13997291
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
Poster une réponse
Anonyme