
URL et login
Re: URL et login
@LePiaf, je crois qu'il est sur mac os 

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: URL et login
Moi aussi je suis sur Mac OS X.
-
- Messages : 510
- Inscription : dim. 25/mars/2007 13:44
- Localisation : Toulouse, France
- Contact :
Re: URL et login
Sans les sockets, il faut bricoler un peu:
Code : Tout sélectionner
EnableExplicit
;Receive HTTP header and return the body size
Procedure.i receiveHttpHeader(connection.i)
Protected header.s, received.i, *buffer, pos.i, endPos.i
;Receive HTTP Header
*buffer = AllocateMemory(1)
Repeat
If NetworkClientEvent(connection) = #PB_NetworkEvent_Data
received = ReceiveNetworkData(connection, *buffer, 1)
header + PeekS(*buffer, 1)
Else
Delay(1)
EndIf
Until Right(header, 4) = #CRLF$+#CRLF$
;Get body length
pos = FindString(header, "Content-Length: ", 0, #PB_String_NoCase)
If pos
pos + Len("Content-Length: ")
endPos = FindString(header, #CRLF$, pos)
ProcedureReturn Val(Mid(header, pos, endPos-pos))
Else
ProcedureReturn 0
EndIf
EndProcedure
Procedure receiveHttpFileWithAuthorization(url.s, login.s, password.s)
Protected host.s, page.s, request.s, input.s, encodedLogin.s, total.i, size.i
Protected *buffer, bufferSize.i, received.i, connection.i
Dim ip.a(4)
host = GetURLPart(url, #PB_URL_Site)
page = GetURLPart(url, #PB_URL_Path)
If GetURLPart(url, #PB_URL_Parameters) <> ""
page + "?" + GetURLPart(url, #PB_URL_Parameters)
EndIf
input = login + ":" + password
encodedLogin = Space(Len(input)*2)
Base64Encoder(@input, Len(input), @encodedLogin, Len(input)*2)
encodedLogin = Trim(encodedLogin)
request = "GET /" + page + " HTTP/1.1" + #CRLF$
request + "Host: " + host + #CRLF$
request + "Connection: close" + #CRLF$
request + "Authorization: Basic " + encodedLogin + #CRLF$
request + #CRLF$
bufferSize = 2048
*buffer = AllocateMemory(bufferSize)
connection = OpenNetworkConnection(host, 80)
If connection
SendNetworkData(connection, @request, Len(request))
size = receiveHttpHeader(connection)
total = 0
Repeat
If NetworkClientEvent(connection) = #PB_NetworkEvent_Data
received = ReceiveNetworkData(connection, *buffer, bufferSize)
total + received
;--- Fais ce que tu veux ici: ---
Debug PeekS(*buffer, received)
;--------------------------------
Else
Delay(1)
EndIf
Until total >= size
CloseNetworkConnection(connection)
EndIf
EndProcedure
InitNetwork()
receiveHttpFileWithAuthorization("http://www.fouineweb.com/testpb/file.txt", "testpb", "MetalOS")
- falsam
- Messages : 7317
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: URL et login
J'ai ce code dans un coin de mes archivesqui donne
Code : Tout sélectionner
ProcedureDLL.s ReadUrlFile(URL.s, OpenType.b=1, ProxyAndPort.s="")
; OpenType
; 1 INTERNET_OPEN_TYPE_DIRECT (Resolves all host names locally.)
; 0 INTERNET_OPEN_TYPE_PRECONFIG (Retrieves the proxy Or direct configuration from the registry)
; 4 INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY (Retrieves the proxy Or direct configuration from the registry And prevents the use of a startup Microsoft JScript Or Internet Setup (INS) file.)
; 3 INTERNET_OPEN_TYPE_PROXY (Passes requests To the proxy unless a proxy bypass list is supplied And the name To be resolved bypasses the proxy. In this Case, the function uses INTERNET_OPEN_TYPE_DIRECT. )
isLoop.b=1
INET_RELOAD.l = $80000000
hInet.l=0
hURL.l=0
Bytes.l=0
Buffer.s=Space(2048)
RES.s=""
hInet = InternetOpen_("", OpenType, ProxyAndPort, "", 0)
hURL = InternetOpenUrl_(hInet, URL, #Null, 0, INET_RELOAD, 0)
Repeat
InternetReadFile_(hURL,@Buffer, Len(Buffer), @Bytes)
If Bytes = 0
isLoop=0
Else
RES = RES + Left(Buffer, Bytes)
EndIf
Until isLoop=0
InternetCloseHandle_(hURL)
InternetCloseHandle_(hInet)
ProcedureReturn RES
EndProcedure
Debug ReadUrlFile("http://testpb:MetalOS@www.fouineweb.com/testpb/file.txt")
C'est ce que contient le fichier txt ?ok
ok file
ok
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: URL et login
Ce qui signifie que MetalOS est sur Mac...Ar-S a écrit :@LePiaf, je crois qu'il est sur mac os
donc internetOpen_ et autres API sont gérables

On va dire que c'est le réveillon

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: URL et login
Pour ma part internetOpen_ ne fonctionne pas sous Mac. Par contre le code de LePiaf fonctionne à merveille, Merci beaucoup et bonne année à vous 
