因此,从昨天开始我就一直在此工作,我经历了许多在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,它是也很模糊,只是没有上下文的答案。