我正在嘗試生成一個HTTP偵聽器,它將接受文件並將其保存到某個位置。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;
}
}
}
當此獲取文件中的錯誤,這是投擲讀取
UnauthorisedAccessExcetion
訪問路徑 'C:\ listenerFiles' 被拒絕。
爲什麼你不在'try/catch'中報告任何異常?你可能會得到一個錯誤,然後悄然吞噬掉。 – DGibbs
我沒有看到任何保存文件的代碼。我看到代碼讀取一個文件,並將它發送給調用者 –
我剛剛添加了錯誤即時獲得 –