В настоящее время я работаю с универсальным обработчиком asp.net. Я считаю, что в настоящее время он находится в каком-то «слушающем» состоянии, ожидающем POST. Я ожидаю POST с заголовком заголовка файла, и после получения обработчика будет рассмотрен вопрос о загрузке файла. Мой код обработчика приведен ниже:HTTP сообщение To Self To Test Handler
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
Я хотел бы повторить публикацию и посмотреть, успешно ли она прошла. Можно ли создать и отправить этот пост из другой программы на моей машине. Я попытался несколько учебников включая этот один
Я чувствую, что я получил ближайший используя этот код (от предыдущей ссылки)
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\..\..\..\
Ваш клиентский код даже не пытается установить заголовок, который ожидает ваш код обработчика. –
Я отредактировал, я перепутал с такими вещами, как wc.Headers.Add, но can not, похоже, получил это прямо – sealz
«messing around» не так полезен, как фактический код. –