You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.7 KiB
77 lines
2.7 KiB
using System; |
|
using System.Collections.Generic; |
|
using System.Linq; |
|
using System.Text; |
|
using System.Security.Cryptography.X509Certificates; |
|
using System.IO; |
|
using System.Net; |
|
using System.Net.Sockets; |
|
using System.Xml; // config file |
|
using System.Runtime.InteropServices; // dll imports |
|
using System.Drawing.Drawing2D; |
|
using log4net; |
|
using System.Reflection; |
|
using System.Windows.Forms; |
|
|
|
namespace ArdupilotMega |
|
{ |
|
public class Common |
|
{ |
|
private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
|
|
|
public static bool getFilefromNet(string url, string saveto) |
|
{ |
|
try |
|
{ |
|
// this is for mono to a ssl server |
|
//ServicePointManager.CertificatePolicy = new NoCheckCertificatePolicy(); |
|
|
|
ServicePointManager.ServerCertificateValidationCallback = |
|
new System.Net.Security.RemoteCertificateValidationCallback((sender, certificate, chain, policyErrors) => { return true; }); |
|
|
|
// Create a request using a URL that can receive a post. |
|
WebRequest request = WebRequest.Create(url); |
|
request.Timeout = 10000; |
|
// Set the Method property of the request to POST. |
|
request.Method = "GET"; |
|
// Get the response. |
|
WebResponse response = request.GetResponse(); |
|
// Display the status. |
|
log.Info(((HttpWebResponse)response).StatusDescription); |
|
if (((HttpWebResponse)response).StatusCode != HttpStatusCode.OK) |
|
return false; |
|
// Get the stream containing content returned by the server. |
|
Stream dataStream = response.GetResponseStream(); |
|
|
|
long bytes = response.ContentLength; |
|
long contlen = bytes; |
|
|
|
byte[] buf1 = new byte[1024]; |
|
|
|
FileStream fs = new FileStream(saveto + ".new", FileMode.Create); |
|
|
|
DateTime dt = DateTime.Now; |
|
|
|
while (dataStream.CanRead && bytes > 0) |
|
{ |
|
Application.DoEvents(); |
|
log.Debug(saveto + " " + bytes); |
|
int len = dataStream.Read(buf1, 0, buf1.Length); |
|
bytes -= len; |
|
fs.Write(buf1, 0, len); |
|
} |
|
|
|
fs.Close(); |
|
dataStream.Close(); |
|
response.Close(); |
|
|
|
File.Delete(saveto); |
|
File.Move(saveto + ".new", saveto); |
|
|
|
return true; |
|
} |
|
catch (Exception ex) { log.Info("getFilefromNet(): " + ex.ToString()); return false; } |
|
} |
|
|
|
} |
|
}
|
|
|