如何读取/写入发送到HTTPListener的POST数据

时间:2020-05-27 16:53:38

标签: c# unity3d post httplistener

因此,从昨天开始我就一直在此工作,我经历了许多在StackOverflow上发布的解决方案/问题,但是经过10多个小时后,没有任何解决方案/问题对我有用,我认为是时候发布问题了。

基本上,我试图使用C#中的HTTPListener存储发送到“服务器”的图像。我正在统一构建它,但我认为这与普通C#没有什么不同。我正在获取有关已发送文件的信息,但是我不知道如何存储它。我想我必须遍历流并读写,我尝试过各种方法,但是没有运气。

    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();

当前这是我的代码,我在Listener CallBack方法中调用它。我无法通过tmp文件名获取发布的图像,并通过第87行获取Post字段名称。但是,我尝试的每种方法在循环时都会返回空文件/数组/结果。

(我尝试的最后一个帖子是这个Get posted file over HTTP Listener in c#。它的最新问题与我的相似,但是我在此行中遇到错误var values = new HttpNameValueCollection(ref con);找不到HttpNameValueCollection,它是也很模糊,只是没有上下文的答案。

0 个答案:

没有答案
相关问题