|
|
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Добрый день. Не знаю, смогу ли сформулировать вопрос, но может поймёте. Есть некий сервис, с которым приложения общаются посредством запросов с использованием POST (есть исходник с вызовами WinAPI - InternetConnect(...), HttpOpenRequest(...), HttpSendRequest(...), и наконец InternetReadFile(...) ). У меня вопрос - а можно ли сделать простую формочку в HTML/javascript типа что-нибудь <form method="POST" enctype="multipart/form-data" action="http://localhost:9876/param1"> <input type="file" name="F1" size="20"> <input type="submit" value="Отправить" name="B1"> </form> чтобы просто протестировать сервис - работает или нет, и что он возвращает? Т.е. я должен как-то передать ему содержимое файла методом POST, указав, что для обработки должна вызываться его процедура param1, а полученный ответ записать (хорошо бы) в файл (ну или хотя бы в ClipBoard что ли...). Причём ответ этот совсем не текстовый. Я вот не пойму саму идеологию - где вообще будет после запроса содержимое, то которое содержится в Buffer после вот этого WinAPI вызова: InternetReadFile(hRequest,&Buffer[0],MySize,BuffLen); ? И как его оттуда вытащить? Возможно ли вообще такое этими средствами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 22:01 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Я слегка нек понял... Вернее я правльно вас понял? Есть какаято программа на сервере. Вы методом POST отсылаете ей файл. И не знаете как считать содержимое этого файла? И еще как вывести обработаные результат? Назовите чтоли хотябы для начала на чем програмируете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 22:19 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Программа написана на C. Я не знаю, как в HTML - форме прочитать ответ от сервиса, который вернётся в ответ на тот файл, который я пошлю ему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 22:24 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Правильно ли я понимаю, что обращение к этому сервису (отправка формы) будет происходить из обычного веб-браузера по протоколу http:// ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 22:37 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Новичок_01 Есть некий сервис, с которым приложения общаются посредством запросов с использованием POST Если есть сервис, возможно у вас есть какая-то дока к нему, либо аналогичный пример, где можно посмотреть содержимое http заголовков, которые уходят к сервису. В html заголовки предопределены и вы сможете отправить стандартный запрос post или get . Если Ваш сервис принимает данные с определенными заголовками, следует посмотреть в сторону CURL (на php) - она позволит вам задать произвольный заголовок и отправить его. В любом случае, абсолютно не ясно что вы хотите сделать, отправить текст или фаил сервису. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 22:42 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
В данном случае (метод пост) читайте в своей программе из stdin, а отвечайте таким образом, чтобы выхлоп был в stdout (читать-писать по-простому). Начинаться выхлоп должен с: Content-type:text/html\r\n\r\n хелловорлд! Пс штука с контенттайпом и двумя переводами с возвратами - обязательна (требования протокола). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 22:46 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Новичок_01Я не знаю, как в HTML - форме прочитать ответ от сервиса, который вернётся в ответ на тот файл, который я пошлю ему. Ответ от сервиса прочтет браузер, а не форма. Как создать форму тынц и тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 22:49 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
mrJustНовичок_01 Есть некий сервис, с которым приложения общаются посредством запросов с использованием POST Если есть сервис, возможно у вас есть какая-то дока к нему, либо аналогичный пример, где можно посмотреть содержимое http заголовков, которые уходят к сервису. В html заголовки предопределены и вы сможете отправить стандартный запрос post или get . Если Ваш сервис принимает данные с определенными заголовками, следует посмотреть в сторону CURL (на php) - она позволит вам задать произвольный заголовок и отправить его. В любом случае, абсолютно не ясно что вы хотите сделать, отправить текст или фаил сервису. Сервису я хочу отправить файл (не текстовый). И получить от него ответ (тоже не текстовый). Программно для меня это не составляет труда (хоть на C, хоть на Delphi...). Но я хочу понять - а можно ли такое же сделать средствами обыкновенной формы HTML? Ведь отправка файла методом POST в ней реализована. (ну а нельзя - так нельзя...). Т.е. вопрос больше познавательный и теоретический. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 22:50 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Новичок_01 Код: plaintext 1. 2. 3. Выберите фаил в форме и отправляйте. Сервис получит http запрос, в котором будет поле F1 . Если не доходит, попробуйте фаил поменьше отправлять, может там (на сервисе) лимит на размер. В любом случае, не важно кто отправляет заголовок, главное какой он. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 22:55 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Новичок_01 Сервису я хочу отправить файл (не текстовый). И получить от него ответ (тоже не текстовый). что-то я.. проглядел сначала... Ответ вы в любом случае получите текстовый. Опять же, в зависимости от заголовков ответа, который программа-получатель (например браузер) получит, будут отображаться данные из ответа. короче.. запрос=заголовок+данные ответ=заголовок+данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 23:06 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
mrJustНовичок_01 Код: plaintext 1. 2. 3. Выберите фаил в форме и отправляйте. Сервис получит http запрос, в котором будет поле F1 . Ну что туда он дойдёт - это понятно. Как мне использовать то, что придёт в ответ оттуда? Если я в своей программе на C или Delphi делаю вызов InternetReadFile(hRequest,&Buffer[0],MySize,BuffLen); то ответ будет содержаться в Buffer и иметь известную мне длину. Беру и пишу его хоть в файл, хоть ещё как обрабатываю. А где мне брать этот ответ в случае использования формы - вот я что пытаюсь понять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 23:13 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Новичок_01, Внимательно посты читай. Из стандартного ввода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 23:19 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Смысл работы пары браузер-сервер прост. Браузер отсылает серверу запрос, состоящий из заголовков и данных. На сервере данные попадают на стандартный ввод (stdin) программы-обработчика (CGI). На чём будет написана эта программа - в принципе без разницы (однажды на shell что то наваял). Главное, чтоб CGI мог прочитать stdin. В обратную сторону, от сервера к клиенту должен пойти вполне осмысленный ответ. По крайней мере, минимальные требования протокола необходимо соблюсти. ShSerge уже написал про обязательную строку, которую должен отдать обработчик CGI в stdout. Это единственная обязательная строка, так называемый "заголовок". Далее обязательно должна быть пустая строка (вот окуда взялись два перевода), чтоб отделить данные от заголовка. Эти данные веб-браузер будет выдавать на экран как текст (потому что указано text/html). Аналогичным образом можно передать клиенту и картинку, и бинарный файл. Поэтому, если в ответе сервера будет содержаться не_текст, то следует изменить заголовок соответствующим образом. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 23:38 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
да, можете. клацните на форме сабмит - вернется ответ. дальнейшие действия браузера зависят от возвращаемого миме-типа но в любом случае вы сможете сохранить это в файл - либо из появившегося окошка "че с этим делать" либо с пом. Файл-Сохранить как. да и вобще - возьмите просто попробуйте - разве проблема? уточню работать будет только в случае если ваш веб-сервис общается "нормальным" хттп. если для его работы требуются специфические хедеры и т.п. то из браузера просто так вы не сможете это сэмулировать. хотя опять же есть к фаерфоксу плагины типа LiveHTTPHeaders - которые позволяют сформировать/подправить запрос и получить ответ. только дальше уже возникает вопрос а надо ли оно вам и не лучше ли использовать какойнить скриптовый язык например Python _______________________________________ 2pro4U ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2008, 23:57 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Frenzyда, можете. клацните на форме сабмит - вернется ответ. дальнейшие действия браузера зависят от возвращаемого миме-типа но в любом случае вы сможете сохранить это в файл - либо из появившегося окошка "че с этим делать" либо с пом. Файл-Сохранить как. да и вобще - возьмите просто попробуйте - разве проблема? _______________________________________ 2pro4U Какие закорючки мне нужно написать в своей HTML - форме, чтобы мне выдалось вот это "чё с этим делать"? Я-то пробую, но мне не возвращается ничего. Файл туда уходит (по крайней мере суда по времени операции и по полоске внизу), а дальше пустой экран. Т.е. может браузер что-то и получает, но я как пользователь этого не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 08:07 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
LiveHTTPHeaders ничего не показывает в ответе сервера? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 10:25 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
vkle LiveHTTPHeaders ничего не показывает в ответе сервера? Я не знаю, что такое LiveHTTPHeaders. Но я вот сейчас быстренько набросал клиентскую прогу на Delphi с применением компонента TNMHTTP, так вот его свойство Header после вызова Post() содержит такой текст: HTTP/1.1 200 OK Connection: close Content-Type: text/html Content-Length: 3951 Server: Indy/9.0.50 А в файл (который я указываю в свойстве Body) преспокойно попадает ответ (ZIP - архив длиной 3951 байт). Т.е. сервис как таковой работает. Только почему HTML - форма не работает? Может я посылаю не содержимое файла а его имя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 10:38 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
> Я не знаю, что такое LiveHTTPHeaders. Зато яндекс знает http://yandex.ru/yandsearch?text=LiveHTTPHeaders > Только почему HTML - форма не работает? Судя по тому что от сервера приходит какой то ответ, на сервер что то отправляется из формы. Что именно - смотрите вышеуказанным плагином. > Может я посылаю не содержимое файла а его имя? Тут уж вам видней, что именно отсылаете )))) Код формы в студию! Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 10:51 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Гммм... С чего это вдруг в ответе ZIP, когда сервер сказал что там текст? > Content-Type: text/html Ежли сервер возвращает zip-архив, то обязан прикрутить другой заголовок. А уж браузер в этом случае должон предложить выбор: сохранить на диск или открыть чем нибудь. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 11:04 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
Так-так... Т.е. браузер пытается это интерпретировать как текст/html, натыкается на вот эти HEX - коды 50 4B 03 04 14 00 00 00 и видимо на первом нуле его и клинит? Ну хорошо - а какой заголовок должен был бы прикрутить сервер, чтобы в броузере был диалог "Что с этим делать" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 11:29 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
vkle Тут уж вам видней, что именно отсылаете )))) Код формы в студию! Код формы в самом первом вопросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 11:31 |
|
||
|
POST: как это вообще сделать?
|
|||
|---|---|---|---|
|
#18+
> какой заголовок должен был бы прикрутить сервер Сложно погуглить по фразе "content-type zip"? ;-) В самом первом вопросе сказано "простую формочку в HTML/javascript типа что-нибудь". Не знаю, кто как, но в "типа что-нибудь" я не смог углядеть смысла "отсылаю данные этой формой". Код правильный. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2008, 11:42 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=35677827&tid=1455516]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
160ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 472ms |

| 0 / 0 |
