Just starting out? Need help? Post your questions and find answers here.
-
forumuser
- User
- Posts: 98
- Joined: Wed Apr 18, 2018 8:24 am
Post
by forumuser »
The necessary url will be inside the $body variable afterwards...
Is there an easy way to convert this to PB?
Code: Select all
; URL for stable build
$data = '<?xml version="1.0" encoding="UTF-8"?><o:gupdate xmlns:o="http://www.google.com/update2/request" protocol="2.0" version="1.2.183.13" ismachine="0" machineid="{11111111-1111-1111-1111-111111111111}" userid="{11111111-1111-1111-1111-111111111111}" requestid="{11111111-1111-1111-1111-111111111111}"><o:os platform="win" version="6.1" sp="Service Pack 1"/><o:app appid="{8A69D345-D564-463C-AFF1-A69D9E530F96}" version="" lang="de" brand="" client="" iid="{11111111-1111-1111-1111-111111111111}"><o:updatecheck/></o:app></o:gupdate>'
$hw_open = _WinHttpOpen()
$hw_connect = _WinHttpConnect($hw_open, "tools.google.com")
$hw_openrequest = _WinHttpOpenRequest($hw_connect, "POST", "/service/update2", "HTTP/1.1", "http://tools.google.com/")
_WinHttpSendRequest($hw_openrequest, "Content-Type: application/x-www-form-urlencoded" & @CRLF, $data)
_WinHttpReceiveResponse($hw_openrequest)
Local $body = ""
Do
$body &= _WinHttpReadData($hw_openrequest)
Until @error
-
infratec
- Always Here
- Posts: 6883
- Joined: Sun Sep 07, 2008 12:45 pm
- Location: Germany
Post
by infratec »
You had to search for 'http post'
Code: Select all
InitNetwork()
Post$ = ~"<?xml version=\"1.0\" encoding=\"UTF-8\"?><o:gupdate xmlns:o=\"http://www.google.com/update2/request\" protocol=\"2.0\" version=\"1.2.183.13\" ismachine=\"0\" machineid=\"{11111111-1111-1111-1111-111111111111}\" userid=\"{11111111-1111-1111-1111-111111111111}\" requestid=\"{11111111-1111-1111-1111-111111111111}\"><o:os platform=\"win\" version=\"6.1\" sp=\"Service Pack 1\"/><o:app appid=\"{8A69D345-D564-463C-AFF1-A69D9E530F96}\" version=\"\" lang=\"de\" brand=\"\" client=\"\" iid=\"{11111111-1111-1111-1111-111111111111}\"><o:updatecheck/></o:app></o:gupdate>"
Con = OpenNetworkConnection("tools.google.com", 80)
If Con
Header$ = "POST /service/update2 HTTP 1.1" + #CRLF$
Header$ + "Host: tools.google.com" + #CRLF$
Header$ + "Content-Length: " + Str(StringByteLength(Post$, #PB_UTF8)) + #CRLF$
Header$ + "Content-Type: application/x-www-form-urlencoded" + #CRLF$
Header$ + #CRLF$
If SendNetworkString(Con, Header$ + Post$, #PB_UTF8)
*Buffer = AllocateMemory(16384)
If *Buffer
Timeout = 300
Repeat
Select NetworkClientEvent(Con)
Case #PB_NetworkEvent_Data
Debug "Data"
Recv = ReceiveNetworkData(Con, *Buffer, MemorySize(*Buffer))
If Recv
Debug PeekS(*Buffer, Recv, #PB_UTF8)
Break
EndIf
Case #PB_NetworkEvent_Disconnect
Timeout = 0
Case #PB_NetworkEvent_None
Delay(10)
Timeout - 1
EndSelect
Until Timeout = 0
FreeMemory(*Buffer)
EndIf
EndIf
CloseNetworkConnection(Con)
EndIf
If you need https you have to use the inbuild curl library.
Bernd
-
forumuser
- User
- Posts: 98
- Joined: Wed Apr 18, 2018 8:24 am
Post
by forumuser »
Thanks a lot, Bernd!
Works fine, I can extract the necessary entries from the xml part that is returned