not enough info for me to answer
if your just getting an image from a the web server assuming the webcam periodically updates the image and saves it
then you can just use
Code: Select all
InitNetwork()
ReceiveHTTPFile("http://www.xyz.com/webcam.jpg","webcam.jpg")
This doesn't answer your question but without any code I can't really answer
so if you did a Get wouldn't it be base64encoded?
Code: Select all
Global gServerID
Global gBusy
Procedure.s GetURL(mUrl.s)
Protected Header.s, *Buffer = AllocateMemory(1200), recString.s,mDoc.s,mServer.s,Timeout.i,pos,pos1,lRet.i,i.i,DataLength.i,TotalRec.i,tdata.s,rlen.i,chunked.i
i=FindString(mUrl,"/",1)
If i
mDoc = Right(mUrl,Len(mUrl)-i)
mServer = Left(mUrl,i-1)
Else
ProcedureReturn ""
EndIf
If gbusy = 0
gServerID = OpenNetworkConnection(mServer,80)
If Not gServerID
MessageRequester("Network Problem","Can't establish connection, please check that you're online")
EndIf
EndIf
Timeout = ElapsedMilliseconds() + 10000
If gServerID
Header = "GET /"+ mDoc + " HTTP/1.1"+#CRLF$
Header + "Host: "+ mServer + #CRLF$+#CRLF$
SendNetworkData(gServerID,@Header,Len(Header))
Repeat
Delay(2)
Until NetworkClientEvent(gServerID) = #PB_NetworkEvent_Data And ElapsedMilliseconds() < Timeout
If ElapsedMilliseconds() < Timeout
DataLength = ReceiveNetworkData(gServerID,*Buffer,1200)
totalRec + DataLength
recString + PeekS(*Buffer,DataLength)
pos = FindString(UCase(recString),UCase("Content-Length"),1)
If pos
pos1 = FindString(UCase(recString),#CRLF$,pos+2)
tdata.s = Mid(recString,pos,pos1-pos)
pos = FindString(tdata,":",1)
rlen = Val(Right(tdata,Len(tdata)-(pos+1)) )
Debug "content len " + Str(rlen)
ElseIf FindString(UCase(recString),UCase("Transfer-Encoding: chunked"),1)
rlen = $7FFFFFFF
chunked = 1
EndIf
;Debug recString
Repeat
DataLength = ReceiveNetworkData(gServerID,*Buffer,1200)
totalRec + DataLength
Debug Datalength
If DataLength
recString + PeekS(*Buffer,DataLength)
EndIf
Delay(2)
If chunked
If FindString(recString, #CRLF$ + "0" + #CRLF$,1)
DataLength = 0
EndIf
EndIf
Until totalRec >= rlen Or DataLength = 0
Debug Str(totalRec) + " " + Str(datalength)
EndIf
CloseNetworkConnection(gServerID)
EndIf
FreeMemory(*Buffer)
gbusy = 0
ProcedureReturn recString
EndProcedure
InitNetwork()
OpenWindow(#PB_Any,0,0,250,300,"event window",#PB_Window_ScreenCentered | #PB_Window_SystemMenu)
StringGadget(0,5,5,240,20,"www.villavacations.net/cam/cam2.jpg") ;some random webcam
ButtonGadget(1,5,25,60,20,"Get")
EditorGadget(2,5,45,240,200)
Repeat
ev = WaitWindowEvent()
If ev = #PB_Event_Gadget
evg = EventGadget()
If evg = 1
SetGadgetText(2,"")
murl.s = GetGadgetText(0)
doc.s = geturl(murl)
If doc <> ""
SetGadgetText(2,doc)
EndIf
EndIf
EndIf
Until ev = #WM_CLOSE