Итак, я занимаюсь этим со вчерашнего дня. Я рассмотрел множество решений / вопросов, опубликованных на StackOverflow, но ни одно из них не помогло мне после 10+ часов. Я подумал, что пришло время задать вопрос.
По сути, я пытаюсь сохранить изображения, отправленные на «Сервер» с помощью HTTPListener в C#. Я строю это в единстве, но не думаю, что это отличается от обычного c#. Я получаю информацию об отправленных файлах, но не знаю, как go их сохранить. Я предполагаю, что мне нужно l oop через поток, читать и писать. Я пробовал разные способы, но безуспешно.
HttpListenerContext context = listener.EndGetContext(result);
Debug.Log("Method: " + context.Request.HttpMethod);
Debug.Log("LocalUrl: " + context.Request.Url.LocalPath);
if (context.Request.QueryString.AllKeys.Length > 0)
foreach (var key in context.Request.QueryString.AllKeys)
{
Debug.Log("Key: " + key + ", Value: " + context.Request.QueryString.GetValues(key)[0]);
}
if (context.Request.HttpMethod == "POST")
{
Thread.Sleep(1000);
var data_text = new StreamReader(context.Request.InputStream,
context.Request.ContentEncoding).ReadToEnd();
Debug.Log(data_text);
}
context.Response.StatusCode = 200;
context.Response.ContentType = "text/html";
using (StreamWriter writer = new StreamWriter(context.Response.OutputStream, Encoding.UTF8))
writer.WriteLine("File Uploaded");
context.Response.Close();
listener.Stop();
В настоящее время это мой код, который я вызываю в моем методе обратного вызова слушателя. Я могу получить изображения, отправленные с именами файлов tmp и имя поля Post через строку 87. Однако каждый метод, который я пробовал, возвращает пустые файлы / массив / результаты при цикле.
(последнее сообщение, которое я пробовал, было этот Получить опубликованный файл через HTTP-прослушиватель в c#. Это последний вопрос, аналогичный моему, но я получаю ошибки с этой строкой var values = new HttpNameValueCollection (ref con); HttpNameValueCollection не найден, это тоже очень расплывчатый, просто ответ без контекста).