How to async this (if it has to be)?
Posted: Mon Oct 09, 2023 7:20 am
This should be a simple request with XML string returned, but I don't get the result$ data back (though I do get header$ and <Records> tags). Probably rock bottom basic for you sorcerers. 
SB page:
PB listener:

SB page:
Code: Select all
Procedure HttpGetEvent(Success, Result$, UserData)
If Success
MessageRequester("Success" + Chr(10) + Chr(10) + Result$ , #PB_MessageRequester_Ok)
EndIf
EndProcedure
url$ = "https://IIS_SRV/cgi-bin/relay.exe"
badge$ = "1001" ; for testing
HTTPRequest(#PB_HTTP_Post, url$ , "badge=" + badge$ , @HttpGetEvent())
Code: Select all
;-LIBRARIES
UseODBCDatabase()
;-Enumerations
Enumeration databases
#odbc
EndEnumeration
Procedure.s query(b$)
connection$ = "TEST_TABLE"
Select OpenDatabase(#odbc , connection$ , "" , "")
Case 0
Debug "Connection failed: " + DatabaseError()
Default
Debug "Connected to database"
query$ = "SELECT " +
"badge," +
"first_name," +
"last_name," +
"phone" +
"FROM members " +
"WHERE badge = '" + b$ + "';"
Select DatabaseQuery(#odbc , query$)
Case 0
Debug "Query error: " + DatabaseError()
Default
fieldCount = DatabaseColumns(#odbc)
While NextDatabaseRow(#odbc)
For field = 0 To fieldCount-1
result$ + "<" + DatabaseColumnName(#odbc , field) + ">" +
GetDatabaseString(#odbc , field) +
"</" + DatabaseColumnName(#odbc , field) + ">"
Next field
Wend
FinishDatabaseQuery(#odbc)
EndSelect
CloseDatabase(#odbc)
EndSelect
ProcedureReturn(result$)
EndProcedure
If Not InitCGI() Or Not ReadCGI()
End
EndIf
badge$ = CGIParameterValue("badge")
result$ = query(badge$)
header$ = "<?xml version=" + #DQUOTE$ + "1.0" + #DQUOTE$ + " " + "encoding=" + #DQUOTE$ + "UTF-8" + #DQUOTE$ + "?>"
result$ = header$ + "<Records><Record>" + result$ + "</Record></Records>"
WriteCGIHeader(#PB_CGI_HeaderContentType, "application/xml" , #PB_CGI_LastHeader)
WriteCGIString(result$)