public static void SendRequestAsync( object[] requestNativeData, string method, string url, List <string> headers, int contentMode, // 0 - null, 1 - text, 2 - binary object content, bool outputIsBinary, VmContext vmContext, Value callback, object[] mutexDataIgnored) // { requestNativeData[1] = new object(); System.ComponentModel.BackgroundWorker bgWorker = new System.ComponentModel.BackgroundWorker(); bgWorker.DoWork += (sender, e) => { HttpResponseValue response = SendRequestSyncImpl(requestNativeData, method, url, headers, contentMode, content, outputIsBinary); lock (requestNativeData[1]) { requestNativeData[0] = response; requestNativeData[2] = true; } }; bgWorker.RunWorkerCompleted += (sender, e) => { Interpreter.Vm.CrayonWrapper.runInterpreterWithFunctionPointer(vmContext, callback, new Value[0]); }; bgWorker.RunWorkerAsync(); }
public static void ReadResponseData( object httpRequest, int[] intOut, string[] stringOut, object[] responseNativeData, List <string> headersOut) { HttpResponseValue response = (HttpResponseValue)httpRequest; intOut[0] = response.StatusCode; intOut[1] = response.IsContentBinary ? 1 : 0; stringOut[0] = response.StatusMessage; stringOut[1] = response.ContentString; responseNativeData[0] = response.ContentBytes; headersOut.AddRange(response.Headers); }
public static bool SendRequestSync( object[] requestNativeData, string method, string url, List <string> headers, int contentMode, // 0 - null, 1 - text, 2 - binary object content, bool outputIsBinary) { HttpResponseValue response = SendRequestSyncImpl(requestNativeData, method, url, headers, contentMode, content, outputIsBinary); requestNativeData[0] = response; requestNativeData[2] = true; return(false); }
public static void SendRequestAsync( object[] requestNativeData, string method, string url, List <string> headers, int contentMode, // 0 - null, 1 - text, 2 - binary object content, bool outputIsBinary) { requestNativeData[1] = new object(); System.ComponentModel.BackgroundWorker bgWorker = new System.ComponentModel.BackgroundWorker(); bgWorker.DoWork += (sender, e) => { HttpResponseValue response = SendRequestSyncImpl(requestNativeData, method, url, headers, contentMode, content, outputIsBinary); lock (requestNativeData[1]) { requestNativeData[0] = response; requestNativeData[2] = true; } }; bgWorker.RunWorkerAsync(); }