MCPcopy Create free account
hub / github.com/benkuper/Chataigne / sendRequestFromScript

Method sendRequestFromScript

Source/Module/modules/http/HTTPModule.cpp:257–331  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

255}
256
257void HTTPModule::sendRequestFromScript(const var::NativeFunctionArgs& args, RequestMethod method)
258{
259 if (!enabled->boolValue()) return;
260
261 if (args.numArguments < 1)
262 {
263 LOGWARNING("Sending HTTP Request requires at least one argument being the address !");
264 return;
265 }
266
267 ResultDataType dataType = ResultDataType::DEFAULT;
268
269 String extraHeaders = "";
270 String payload = "";
271 StringPairArray requestParams;
272
273 File file = File();
274
275 if (args.numArguments >= 2)
276 {
277 if (args.arguments[1].isObject())
278 {
279 var o = args.arguments[1];
280 extraHeaders = o.getProperty("extraHeaders", extraHeaders);
281
282 var pp = o.getProperty("payload", "");
283 if (pp.isObject()) payload = JSON::toString(pp, true);
284 else payload = pp.toString();
285
286 String dataTypeString = o.getProperty("dataType", "").toString().toLowerCase();
287 if (dataTypeString == jsonDataTypeId.toString()) dataType = ResultDataType::JSON;
288 else if (dataTypeString == rawDataTypeId.toString()) dataType = ResultDataType::RAW;
289
290 var argArray = o.getProperty("arguments", var());
291 for (int i = 0; i < argArray.size(); i += 2)
292 {
293 if (i >= argArray.size() - 1) break;
294 requestParams.set(argArray[i], argArray[i + 1]);
295 }
296
297 var fp = o.getProperty("file", var());
298 file = File(fp.toString());
299 }
300 else
301 {
302 if (method == GET)
303 {
304 if (args.numArguments >= 2)
305 {
306 String dataTypeString = args.arguments[1].toString().toLowerCase();
307 if (dataTypeString == jsonDataTypeId.toString()) dataType = ResultDataType::JSON;
308 else if (dataTypeString == rawDataTypeId.toString()) dataType = ResultDataType::RAW;
309 if (args.numArguments >= 3) extraHeaders = args.arguments[2].toString();
310 if (args.numArguments >= 4)
311 {
312 var pp = args.arguments[3];
313 if (pp.isObject()) payload = JSON::toString(pp, true);
314 else payload = pp.toString();

Callers 6

sendGETFromScriptMethod · 0.80
sendPOSTFromScriptMethod · 0.80
sendPUTFromScriptMethod · 0.80
sendPATCHFromScriptMethod · 0.80
sendDELETEFromScriptMethod · 0.80
uploadFileFromScriptMethod · 0.80

Calls 2

sizeMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected