【发布时间】:2015-03-11 04:50:36
【问题描述】:
我正在尝试生成一个 HTTP 侦听器,它将接受文件并将其保存到某个位置。
下面的代码看到有东西进来了,但是没有保存文件。
如果您能查看代码并告诉我哪里出错了,我将不胜感激。
class Program
{
static void Main(string[] args)
{
Listener();
}
public static void Listener()
{
const string prefix = "http://localhost:8082/";
var listener = new HttpListener();
listener.Prefixes.Add(prefix);
try
{
listener.Start();
}
catch (HttpListenerException hlex)
{
return;
}
while (listener.IsListening)
{
var context = listener.GetContext();
ProcessRequest(context);
}
listener.Close();
}
public static void ProcessRequest(HttpListenerContext context)
{
var filename = Path.GetFileName(context.Request.RawUrl);
var path = Path.Combine(@"c:\listenerFiles", filename);
try
{
context.Response.StatusCode = (int)HttpStatusCode.Accepted;
Console.WriteLine(context.Response.StatusCode = (int)HttpStatusCode.Accepted);
var receivingFile = File.ReadAllBytes(path);
Console.WriteLine(receivingFile);
context.Response.ContentLength64 = receivingFile.Length;
using (var s = context.Response.OutputStream)
s.Write(receivingFile, 0, receivingFile.Length);
}
catch (Exception e)
{
return;
}
}
}
当它获取文件时,它抛出的错误读取
未授权访问异常
对路径“c:\listenerFiles”的访问被拒绝。
【问题讨论】:
-
您为什么不在
try/catch中报告任何异常情况?你可能会得到一个错误,然后默默地吞掉它。 -
我没有看到任何保存文件的代码。我看到读取文件并将其发送给调用者的代码
-
我刚刚添加了我得到的错误
-
@PanagiotisKanavos 我需要怎么做才能在此处保存文件,因为当我调试并进入时文件名当前为空
-
@SimonPrice 你试过自己写东西吗?要求 Internet 为您转换代码是不受欢迎的。至少尝试读取请求流并使用 File.WriteXXX 写入它
标签: c# httplistener