Как читать / писать данные POST, отправленные в HTTPListener - PullRequest
0 голосов
/ 27 мая 2020

Итак, я занимаюсь этим со вчерашнего дня. Я рассмотрел множество решений / вопросов, опубликованных на 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 не найден, это тоже очень расплывчатый, просто ответ без контекста).

...