Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.217.8.82] |
|
Данный раздел предназначается для обсуждения вопросов использования баз данных, за исключением составления запросов на SQL. Для этого выделен специальный раздел. Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ. |
Сообщ.
#1
,
|
|
|
Доброго суток. Делаю впервые on-line протокол, так что сильно не бейте.
Смысл проблемы: На unix сервере лежат .php которые нужно дёргать из oracle по средствам utl_http, передавая "на вход" xml-текст запроса. utl_http.set_body_charset( charset => 'windows-1251' ); utl_http.set_transfer_timeout( 60 ); req := utl_http.begin_request(g_url,'POST', utl_http.HTTP_VERSION_1_1 ); utl_http.set_header( Req, 'User-Agent', 'Mozilla/5.0' ); utl_http.set_header( Req, 'Content-Type', 'text/xml; charset=windows-1251' ); utl_http.set_header( Req, 'Content-Length', lengthb( Data )); Pos := 1; while true loop Str := substr( Data, Pos, 2000 ); Pos := Pos + 2000; exit when Str is null; utl_http.write_text( Req, Str ); end loop; ClearTmpCLOB( Answer ); resp := utl_http.get_response(req); while true loop utl_http.read_text( Resp, Str, 2000 ); dbms_lob.WriteAppend( Answer, length( Str ), Str ); exit when Str is null or length( Str ) < 2000; end loop; utl_http.end_response( Resp ); Doc := XMLType.createXML( Answer ); где Data q_head constant varchar2(50) := '<?xml version="1.0" encoding="utf-8">'; siteURL constant varchar2(100):= путь_к_папке_на_сервере; .... data:=q_head || '<rta_request>'|| '<act>0</act>' || '</rta_request>'; g_url := siteURL || 'SubComp1.php '; Когда запускаю процедуру без текста, точнее в SubComp1.php прописываю "в лоб" текст xml (благо именно этот запрос фиксирован, но следующие уже будут - нет), то всё нормально отрабатывает $body="<?xml version=\"1.0\" encoding=\"utf-8\"?>"; $body.="<rta_request>"; $body.="<act>0</act>"; $body.="</rta_request>"; $params = array('req' => $body); ..... curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params)); приходит ответ, я его разбираю - всё замечательно, но как только пытаюсь $body получить через $body=trim($GLOBALS['HTTP_RAW_POST_DATA']); то php не запускается Пока что я новичок в теме - если кто знает, где ошибка? |
Сообщ.
#2
,
|
|
|
Сложно быть идиотом... блин...
q_head constant varchar2(50) := '<?xml version="1.0" encoding="utf-8">'; А кто последний вопрос за меня ставить будет? Ага, вот и я о том же... Но ещё столкнулся с такой интересной штукой: При комментировании в .php $body="<?xml version=\"1.0\" encoding=\"utf-8\"?>"; $body.="<rta_request>"; $body.="<act>0</act>"; $body.="</rta_request>"; Если этот блок брать в /* */, то всё нормально воспринимается, а если комментировать каждую строчку путём "//", то на первой строке спотыкается, видимо не нравится обратный слэш. Но это уже вопрос к php |