forked from paulosalestd/MQL5Book
55 lines
2.4 KiB
MQL5
55 lines
2.4 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| WebRequestForm.mq5 |
|
|
//| Copyright 2022, MetaQuotes Ltd. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
#property description "Send a form with test pizza order. Form fields are hardcoded - to test other forms, change the set of inputs."
|
|
#property description "NB: Default 'Address' requires to allow 'httpbin.org' in terminal settings - to use other addresses, change settings accordingly."
|
|
#property script_show_inputs
|
|
|
|
#include "..\..\Include\PRTF.mqh"
|
|
#include "..\..\Include\HTTPRequest.mqh"
|
|
|
|
input string Address = "https://httpbin.org/post";
|
|
|
|
input string Customer = "custname=Vincent Silver";
|
|
input string Telephone = "custtel=123-123-123";
|
|
input string Email = "custemail=email@address.org";
|
|
input string PizzaSize = "size=small"; // PizzaSize (small,medium,large)
|
|
input string PizzaTopping = "topping=bacon"; // PizzaTopping (bacon,cheese,onion,mushroom)
|
|
input string DeliveryTime = "delivery=";
|
|
input string Comments = "comments=";
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Script program start function |
|
|
//+------------------------------------------------------------------+
|
|
void OnStart()
|
|
{
|
|
uchar result[];
|
|
string response;
|
|
// ; UTF-8 is implied for 'unreserved' chars
|
|
// urlencode is performed by WebRequest behind the scene
|
|
// local chars are supported
|
|
string header = "Content-Type: application/x-www-form-urlencoded";
|
|
string form_fields;
|
|
StringConcatenate(form_fields,
|
|
Customer, "&",
|
|
Telephone, "&",
|
|
Email, "&",
|
|
PizzaSize, "&",
|
|
PizzaTopping, "&",
|
|
DeliveryTime, "&",
|
|
Comments);
|
|
HTTPRequest http(header);
|
|
if(http.POST(Address, form_fields, result, response) > -1)
|
|
{
|
|
if(ArraySize(result) > 0)
|
|
{
|
|
PrintFormat("Got data: %d bytes", ArraySize(result));
|
|
// NB: UTF-8 is implied in many content-types,
|
|
// but some sites may require to analyze response headers
|
|
Print(CharArrayToString(result, 0, WHOLE_ARRAY, CP_UTF8));
|
|
}
|
|
}
|
|
}
|
|
//+------------------------------------------------------------------+
|