https://powdertoy.co.uk/Wiki/index.php?title=Lua_API:HTTP&feed=atom&action=history Lua API:HTTP - Revision history 2021-09-23T05:19:19Z Revision history for this page on the wiki MediaWiki 1.30.0 https://powdertoy.co.uk/Wiki/index.php?title=Lua_API:HTTP&diff=7884&oldid=prev LBPHacker: Update as per commit afefd045 2020-12-06T19:46:40Z <p>Update as per commit afefd045</p> <table class="diff diff-contentalign-left" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr style="vertical-align: top;" lang="en"> <td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td> <td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 19:46, 6 December 2020</td> </tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l28" >Line 28:</td> <td colspan="2" class="diff-lineno">Line 28:</td></tr> <tr><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== Methods ==</div></td><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== Methods ==</div></td></tr> <tr><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr> <tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>=== http.<del class="diffchange diffchange-inline">request </del>===</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>=== http.<ins class="diffchange diffchange-inline">get </ins>===</div></td></tr> <tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>&#160; HTTPRequest http.<del class="diffchange diffchange-inline">request</del>(string uri<del class="diffchange diffchange-inline">, [table post_params</del>, [table headers<del class="diffchange diffchange-inline">]</del>])</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>&#160; HTTPRequest http.<ins class="diffchange diffchange-inline">get</ins>(string uri, [table headers])</div></td></tr> <tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Constructs <del class="diffchange diffchange-inline">a </del>HTTPRequest object and starts the underlying request immediately with the URI<del class="diffchange diffchange-inline">, post parameters </del>and headers supplied. <del class="diffchange diffchange-inline">Both </del>optional <del class="diffchange diffchange-inline">tables are collections </del>of string key and string value pairs. <del class="diffchange diffchange-inline">The </del>request is a POST <del class="diffchange diffchange-inline">if post </del>parameters are <del class="diffchange diffchange-inline">supplied</del>, a <del class="diffchange diffchange-inline">GET otherwise</del>.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Constructs <ins class="diffchange diffchange-inline">an </ins>HTTPRequest object and starts the underlying <ins class="diffchange diffchange-inline">GET </ins>request immediately with the URI and headers supplied. <ins class="diffchange diffchange-inline">The </ins>optional <ins class="diffchange diffchange-inline">table argument is a collection </ins>of string key and string value pairs.</div></td></tr> <tr><td colspan="2">&#160;</td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>&#160;</div></td></tr> <tr><td colspan="2">&#160;</td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">=== http.post ===</ins></div></td></tr> <tr><td colspan="2">&#160;</td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline"> HTTPRequest http.post(string uri, table post_params, [table headers])</ins></div></td></tr> <tr><td colspan="2">&#160;</td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Same as http.get, except the underlying </ins>request is a POST<ins class="diffchange diffchange-inline">. Post </ins>parameters are <ins class="diffchange diffchange-inline">passed in the extra table argument</ins>, a <ins class="diffchange diffchange-inline">collection of string key and string value pairs</ins>.</div></td></tr> <!-- diff cache key mediawiki-pw_:diff:version:1.11a:oldid:7595:newid:7884 --> </table> LBPHacker https://powdertoy.co.uk/Wiki/index.php?title=Lua_API:HTTP&diff=7595&oldid=prev LBPHacker: Update content as per 8928280 2020-01-18T00:50:40Z <p>Update content as per 8928280</p> <table class="diff diff-contentalign-left" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr style="vertical-align: top;" lang="en"> <td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td> <td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 00:50, 18 January 2020</td> </tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td> <td colspan="2" class="diff-lineno">Line 1:</td></tr> <tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The HTTP API provides access to basic HTTP functionality. Depending on how TPT is built, it may only work with secure sites (ones that use TLS, i.e. HTTPS) or it may <del class="diffchange diffchange-inline">not </del>even be <del class="diffchange diffchange-inline">available</del>.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The HTTP API provides access to basic HTTP functionality. Depending on how TPT is built, it may only work with secure sites (ones that use TLS, i.e. HTTPS) or it may even be <ins class="diffchange diffchange-inline">wholly unable to actually complete HTTP requests; see relevant #defines in Config.h</ins>.</div></td></tr> <tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline"> assert(http, &quot;HTTP functionality unavailable&quot;)</del></div></td><td colspan="2">&#160;</td></tr> <tr><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr> <tr><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== Classes ==</div></td><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== Classes ==</div></td></tr> <tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l24" >Line 24:</td> <td colspan="2" class="diff-lineno">Line 23:</td></tr> <tr><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>&#160; string, number HTTPRequest:finish()</div></td><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>&#160; string, number HTTPRequest:finish()</div></td></tr> <tr><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Finishes the request and returns the response body and the status code. Call this only when HTTPRequest:status returns &quot;done&quot;. Does and returns nothing if the request is dead.</div></td><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Finishes the request and returns the response body and the status code. Call this only when HTTPRequest:status returns &quot;done&quot;. Does and returns nothing if the request is dead.</div></td></tr> <tr><td colspan="2">&#160;</td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr> <tr><td colspan="2">&#160;</td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">Non-standard status codes of note are 601, which is returned by plain HTTP requests if TPT is built with ENFORCE_HTTPS, and 604, which is returned by all requests if TPT is built with NOHTTP. Note that both codes may be returned for other reasons.</ins></div></td></tr> <tr><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr> <tr><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== Methods ==</div></td><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== Methods ==</div></td></tr> </table> LBPHacker https://powdertoy.co.uk/Wiki/index.php?title=Lua_API:HTTP&diff=7594&oldid=prev LBPHacker: Explain how the API determines whether to initiate a POST or a GET request 2020-01-16T21:25:04Z <p>Explain how the API determines whether to initiate a POST or a GET request</p> <table class="diff diff-contentalign-left" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr style="vertical-align: top;" lang="en"> <td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td> <td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 21:25, 16 January 2020</td> </tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l29" >Line 29:</td> <td colspan="2" class="diff-lineno">Line 29:</td></tr> <tr><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== http.request ===</div></td><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>=== http.request ===</div></td></tr> <tr><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>&#160; HTTPRequest http.request(string uri, [table post_params, [table headers]])</div></td><td class='diff-marker'>&#160;</td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>&#160; HTTPRequest http.request(string uri, [table post_params, [table headers]])</div></td></tr> <tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Constructs a HTTPRequest object and starts the underlying request immediately with the URI, post parameters and headers supplied. Both optional tables are collections of string key and string value pairs.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Constructs a HTTPRequest object and starts the underlying request immediately with the URI, post parameters and headers supplied. Both optional tables are collections of string key and string value pairs<ins class="diffchange diffchange-inline">. The request is a POST if post parameters are supplied, a GET otherwise</ins>.</div></td></tr> <!-- diff cache key mediawiki-pw_:diff:version:1.11a:oldid:7593:newid:7594 --> </table> LBPHacker https://powdertoy.co.uk/Wiki/index.php?title=Lua_API:HTTP&diff=7593&oldid=prev LBPHacker: Add HTTP API page 2020-01-16T19:56:06Z <p>Add HTTP API page</p> <p><b>New page</b></p><div>The HTTP API provides access to basic HTTP functionality. Depending on how TPT is built, it may only work with secure sites (ones that use TLS, i.e. HTTPS) or it may not even be available.<br /> assert(http, &quot;HTTP functionality unavailable&quot;)<br /> <br /> == Classes ==<br /> <br /> === HTTPRequest ===<br /> <br /> ==== HTTPRequest:status ====<br /> string HTTPRequest:status()<br /> Returns one of the following:<br /> * &quot;running&quot; if the request hasn't finished yet;<br /> * &quot;done&quot; if the request has finished and the response body is ready to be read;<br /> * &quot;dead&quot; if the request is dead, i.e. if it has been cancelled or if the response body has been read.<br /> <br /> ==== HTTPRequest:progress ====<br /> number, number HTTPRequest:progress()<br /> If the request is not dead, returns the size of the response body in bytes in the first return value (-1 if the size is not known), and the number of bytes received so far in the second. If the request is dead, returns nothing.<br /> <br /> ==== HTTPRequest:cancel ====<br /> nil HTTPRequest:cancel()<br /> Cancels the request. Does nothing if the request is dead.<br /> <br /> ==== HTTPRequest:finish ====<br /> string, number HTTPRequest:finish()<br /> Finishes the request and returns the response body and the status code. Call this only when HTTPRequest:status returns &quot;done&quot;. Does and returns nothing if the request is dead.<br /> <br /> == Methods ==<br /> <br /> === http.request ===<br /> HTTPRequest http.request(string uri, [table post_params, [table headers]])<br /> Constructs a HTTPRequest object and starts the underlying request immediately with the URI, post parameters and headers supplied. Both optional tables are collections of string key and string value pairs.</div> LBPHacker