Загрузка данных на сайт методом POST
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Загрузка данных на сайт методом POST
Добрый день!
Помогите пожалуйста реализовать следующую возможность
Необходимо на определенный IP осуществить загрузку данных
Метод: POST
Формат данных - JSON
Описание: На адрес сервиса методом POST передается json объект с нижеописанной структурой.
Сам объект json я реализовал через текстовый файл
Проверка на валидность файл проходит
Если возможность через Clarion 5.5 или другой реализовать процесс загрузки данных методом POST
Идеальный вариант пользователь запускает программу выбирает файл для загрузки
Происходит процесс загрузки и в ответ получает информацию от сервиса о результате загрузки тоже в формате json
Опыта работы с Php не имею.
Помогите пожалуйста реализовать следующую возможность
Необходимо на определенный IP осуществить загрузку данных
Метод: POST
Формат данных - JSON
Описание: На адрес сервиса методом POST передается json объект с нижеописанной структурой.
Сам объект json я реализовал через текстовый файл
Проверка на валидность файл проходит
Если возможность через Clarion 5.5 или другой реализовать процесс загрузки данных методом POST
Идеальный вариант пользователь запускает программу выбирает файл для загрузки
Происходит процесс загрузки и в ответ получает информацию от сервиса о результате загрузки тоже в формате json
Опыта работы с Php не имею.
С Уважением
Картавцев Юрий
Картавцев Юрий
- Admin
- Администратор
- Сообщения: 4010
- Зарегистрирован: 05 Июль 2005, 15:59
- Откуда: Хабаровск
- Благодарил (а): 53 раза
- Поблагодарили: 33 раза
- Контактная информация:
Загрузка данных на сайт методом POST
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
Загрузка данных на сайт методом POST
Делал когда-то класс CHTTP, там предусмотрен обмен через ftp/http-get/http-post
Вот здесь https://mega.nz/#!Fl5FEAoT!WU3ntZ1aG8LE ... ONI3QTMcqQ
пример программы, ведущей обмен по ftp/http-get/http-post
А вот здесь https://mega.nz/#!o1xmHCob!fO9dgFjFK535 ... 751kQgGxqM
кусок из реальной программы, обменивающей данные по протоколу SOAP.
Наверное, SOAP вполне можно поправить на JSON.
Могу и ещё поискать примеры...
Вот здесь https://mega.nz/#!Fl5FEAoT!WU3ntZ1aG8LE ... ONI3QTMcqQ
пример программы, ведущей обмен по ftp/http-get/http-post
А вот здесь https://mega.nz/#!o1xmHCob!fO9dgFjFK535 ... 751kQgGxqM
кусок из реальной программы, обменивающей данные по протоколу SOAP.
Наверное, SOAP вполне можно поправить на JSON.
Могу и ещё поискать примеры...
Загрузка данных на сайт методом POST
Спасибо за советы. Буду разбираться дальше. Если не затруднительно, то поищите еще примеры.
С Уважением
Картавцев Юрий
Картавцев Юрий
Загрузка данных на сайт методом POST
1. Стандартный протокол POST предусматривает передачу данных в виде
Переменная = значение & Переменная=значение...., всё это дело укладывается в буфер, снабжается заголовками и передаётся.
Но это если POST...
После чего принимается ответ от сервера (который может быть чем угодно).
Если это Ваш сервер, то просто согласуйте имя переменной и сделайте отправку Вашего текста
Что-типа
2. Если это всё же не POST, найдите метод SOAPData и сделайте копию, например, JSONData. Замените заголовки и сделайте версию для JSON...
Переменная = значение & Переменная=значение...., всё это дело укладывается в буфер, снабжается заголовками и передаётся.
Но это если POST...
После чего принимается ответ от сервера (который может быть чем угодно).
Если это Ваш сервер, то просто согласуйте имя переменной и сделайте отправку Вашего текста
Что-типа
Код: Выделить всё
H Class(Chttp)
Loc:Server CString(260)
Loc:Port Long
Loc:Page CString(260)
! Это просто примеры параметров, никакого смысла сюда не заложено
Loc:Server = 'yandex.ru'
Loc:Port = 80
Loc:Page = 'test/index.php'
! Заказываем соединение
H.Connect(Loc:SERVER,Loc:Port)
If H.Error
Message('Ошибка соединения с ' & Loc:SERVER & ':' & Loc:PORT & '|' & H.Error,'Внимание!')
return
End
! Добавляем переменную JSON
H.AddData('JSON',Loc:JSONText)
! И отправляем
H.PostData(Loc:Page)
If H.Error
Message('Ошибка передачи данных:' & H.Error,'Внимание!')
H.Disconnect()
Return
Else
! Сейчас в поле H.Response лежит ответ сервера, он не стандартизирован...
END
2. Если это всё же не POST, найдите метод SOAPData и сделайте копию, например, JSONData. Замените заголовки и сделайте версию для JSON...
- Дед Пахом
- Старичок
- Сообщения: 3285
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 48 раз
- Контактная информация:
Загрузка данных на сайт методом POST
Вот так в libcurl:
Код: Выделить всё
PROGRAM
PRAGMA('project(#compile libcurl.clw)')
PRAGMA('project(#pragma link(libcurl.lib))')
INCLUDE('libcurl.inc')
MAP
END
curl TCurlClass
res CURLcode
url STRING(256)
argname STRING(32)
infile STRING(256)
respfile STRING(256)
CODE
curl.Init()
url = 'http://myserver/index.php'
argname = 'userfile'
infile = 'test.json'
respfile = 'post_response.json'
res = curl.PostFile(url, argname, infile, respfile)
IF res = CURLE_OK
MESSAGE('Success, see file '& CLIP(respfile) &' for details', 'Post test', ICON:Asterisk)
ELSIF res = -1
MESSAGE('curl_formadd failed: errcode '& res, 'Post test', ICON:Asterisk)
ELSE
MESSAGE('PostFile failed: '& curl.StrError(res), 'libcurl', ICON:Exclamation)
END
С уважением, ДП
Загрузка данных на сайт методом POST
Добрый день!
Спасибо всем ответившим
Что означает этот параметр
Спасибо всем ответившим
Что означает этот параметр
С Уважением
Картавцев Юрий
Картавцев Юрий
- Дед Пахом
- Старичок
- Сообщения: 3285
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 48 раз
- Контактная информация:
Загрузка данных на сайт методом POST
имеется в виду http://myserver/index.php?userfile=blabla
С уважением, ДП
Загрузка данных на сайт методом POST
Добрый день!
Поправьте если я не прав
url = 'http://myserver/index.php' //Адрес сервиса куда загружаем данные
argname = 'userfile' //Строка содержащая адрес сервера и файл с загружаемыми данными
infile = 'test.json' // Файл с загружаемыми данными
respfile = 'post_response.json' //Файл с ответом сервера
С уважением
Юрий
Поправьте если я не прав
url = 'http://myserver/index.php' //Адрес сервиса куда загружаем данные
argname = 'userfile' //Строка содержащая адрес сервера и файл с загружаемыми данными
infile = 'test.json' // Файл с загружаемыми данными
respfile = 'post_response.json' //Файл с ответом сервера
С уважением
Юрий
С Уважением
Картавцев Юрий
Картавцев Юрий
- Дед Пахом
- Старичок
- Сообщения: 3285
- Зарегистрирован: 07 Июль 2005, 16:51
- Откуда: Москва, Россия
- Благодарил (а): 15 раз
- Поблагодарили: 48 раз
- Контактная информация:
Загрузка данных на сайт методом POST
argname это имя аргумента в строке url: arg1=val1&arg2=val2...
С уважением, ДП