Вопрос: как правильно отправить POST запрос на страницу
Добавлено: 19.10.11 22:02
Автор вопроса: invader | Web-сайт:comdoc79.webs.md
сам пишу в среде VB6. с сетью почти не работал, наткнулся на код, написанный на С# переконвертировал в VB.NET
и в общем идея понятна но сплошные ошибки!!!!
идея в следующем? я отправляю аудио файл который расположен скажем в С:/1.flac методом POST на страницу в интернете
приведу код, но не уверен что он будет корректно отображён тегами данного форума...
прошу понять меня я пользуюсь googl'ом, но нет конвертера из VB.NET в VB6 (мотивация-зачем возвращаться к старому-БРЕД! ИМХО)
а на метод пост ни одного толкового примера.
и так код:
Public Function GoogleRequest(flacName As String, sampleRate As Integer) As String
Dim request As WebRequest = WebRequest.Create("https://www.google.com/.....bla...../?xjerr=1&client=chromium&lang=ru-RU")
request.Method = "POST"
Dim byteArray As Byte()= File.ReadAllBytes(flacName)
' Set the ContentType property of the WebRequest.
request.ContentType = "audio/x-flac; rate=" & sampleRate
'"16000";
request.ContentLength = byteArray.Length
' Get the request stream.
Dim dataStream As Stream = request.GetRequestStream()
' Write the data to the request stream.
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
' Get the response.
Dim response As WebResponse = request.GetResponse()
dataStream = response.GetResponseStream()
' Open the stream using a StreamReader for easy access.
Dim reader As New StreamReader(dataStream)
' Read the content.
Dim responseFromServer As String = reader.ReadToEnd()
' Clean up the streams.
reader.Close()
dataStream.Close()
response.Close()
В коде ничего криминального не вижу. во многих местах стоит использовать using, но на работу кода в корректных условиях это не повлияет.
что за ошибки падают?
Возможно веб-сервер определнным образом обнаруживает, что запрос присылает автоматическая прогармма, а не веб-браузер (сравнивай HTTP-снифером запрос, который отправляет браузер и твоя программа).
но нет конвертера из VB.NET в VB6 (мотивация-зачем возвращаться к старому-БРЕД! ИМХО)
Мотивация там другая - невозможно случайно взятый код на VB .NET сконвертироваьт в VB6, потому что в библиотеке классов VB6 нет функций, которые есть в библитоеке классов .NET, и в самом VB6 нет синтаксических конструкций, которые есть в VB .NET и нет возможности их как-то проэмулировать. Поэтому даже если будет конвертор, который может сконвертировать определенный кусок кода VB .NET в VB6, его ценность будет равна 0.
http://sourceforge.net/projects/audica/files/Stuff/audica_upload_tool_0.2.1_src_bin.zip/download попробуйте повтыкать в этот проект. Он как раз предназначен для загрузки файлов на хостинги. Часть кода в проекте, а другая в скриптах рядом.