首页 > 解决方案 > 如何使用 C# 将文件发送到 Apache2 网站?

问题描述

所以,我用 C# 编写了一些代码,用于检查某个网站上文件中的内容。当它检测到该文件中的更改时,它将执行一些命令。现在我在想,有没有办法将一些文件发送回网站?该网站在 Raspberry Pi 上使用 Apache2 托管。这是我得到的代码:

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,这很重要。

标签: c#

解决方案


推荐阅读