В настоящее время я работаю с универсальным обработчиком в asp.net. Я полагаю, что в настоящее время он находится в состоянии «прослушивания», ожидая POST. Я ожидаю POST с заголовком имени файла, и после получения обработчик будет заниматься загрузкой файла. Мой код обработчика ниже:
Sub ProcessRequest(Byval context as HttpContext) Implements IHttpHanlder.ProcessRequest
If context.Request.HttpMethod() = "POST" Then
Dim Reader as New StreamReader(context.Request.InputStream)
Dim contents as String = reader.ReadtoEnd()
Dim filename as String = context.Request.Headers(("filename"))
System.IO.File.Writealltext(ConfigurationManager.AppSettings("outputdirectory"), contents)
Else
context.Response.ContentType = "text/plain"
context.Response.ContentType("Handler is alive")
End If
End Sub
Я хотел бы повторить сообщение и посмотреть, успешно ли оно воспринимается. Можно ли было сгенерировать и отправить этот пост из другой программы на моей машине. Я попытался несколько учебных пособий, включая этот
SO - учебник POST
Я чувствую, что получил этот код ближе всего (по предыдущей ссылке)
Using wc as New System.Net.WebClient
wc.UploadFile("http://localhost:Port/local/of/handler", "C:\local\of\file.txt")
End Using
Я получаю ошибку 500 с удаленного сервера. Будет ли это проблемой с кодом обработчиков? Или я просто не делаю правильный тип POST?
Когда возиться с предложением wc.Headers () / Дарина, я все равно получаю ошибку 500. Исключение ниже.
System.Net.WebException: The remote server returned an error: (500) Internal Server Error
at System.Net.HttpWebRequest.GetResponse()
at System.Net.Webclient.GetWebResponse(WebRequest request)
at System.Net.WebClient.WebClientWriteStream.Dispose(Boolean disposing)
at System.IO.Stream.Close()
at System.IO.Stream.Dispose()
at TestPOSTGETEXE.Form1.Button4_Click(Object sender, EventArgs e) in C:\blah\blah\..\..\..\