|
07.04.2014, 23:47 | #1 |
Участник
|
Добрый день
Кто-нибудь сабж реализовывал? Или может знает какую-нибудь утилиту, для этого. Пробовал модифицировать разными способами всем известный функционал, но ничего не получается. В ответ одна и таже ошибка: $_POST['xml_request'] не заполнено ============================================= XMLDoc Automation 'Microsoft XML, v6.0'.DOMDocument locautXmlHttp Automation 'Microsoft XML, v6.0'.ServerXMLHTTP60 ============================================= IF ISCLEAR(XMLDoc) THEN CREATE(XMLDoc); XMLDoc.async := FALSE; XMLDoc.load('C:\TEMP\1.xml'); locautXmlHttp.setTimeouts(5000,160*0,160*1000,600*1000); locautXmlHttp.open('POST',req_link,FALSE); locautXmlHttp.setRequestHeader('Content-type','application/xml; charset="utf-8"'); locautXmlHttp.send(XMLDoc); XMLDoc.load(locautXmlHttp.responseBody); XMLDoc.save('C:\TEMP\2.xml'); =========================================== Пробовал менять: 1. locautXmlHttp.send('xml_request='+URLencode(XMLDoc.text)); 2. req_link := req_link+'?xml_request='+URLencode(XMLDoc.text); 3. заменял везде URLencode(XMLDoc.text) на '<?xml?><DeliveryRequest/>' Ничего не помогает, других способов найти не могу. |
|
08.04.2014, 11:33 | #2 |
Участник
|
Отсутствует создание переменной locautXmlHttp.
Я думаю ServerXMLHTTP60 излишен достаточно обычного xmlhttp Код: Name DataType Subtype Length XMLHTTP Automation 'Microsoft XML, v6.0'.XMLHTTP60 // отправка файла IF ISCLEAR(XMLDoc) THEN CREATE(XMLDoc); XMLDoc.async := FALSE; XMLDoc.load('C:\TEMP\1.xml'); IF NOT ISCLEAR(XMLHTTP) THEN CLEAR(XMLHTTP); CREATE(XMLHTTP); XMLHTTP.open('POST', "полный путь до файла на сервере", FALSE, Login,Pass); XMLHTTP.send(XMLDoc); IF XMLHTTP.status<>200 THEN BEGIN error(XMLHTTP.statusText) END; |
|
08.04.2014, 16:39 | #3 |
Участник
|
Спасибо за ответ, нашел решение.
Аутомейшены разные перепробывал, всё одинаково, работает так же с WinHTTP Оказывается всё дело в заголовке: 'Content-type','application/x-www-form-urlencoded' ============================================= XMLDoc Automation 'Microsoft XML, v6.0'.DOMDocument locautXmlHttp Automation 'Microsoft WinHTTP Services, version 5.1'.WinHttpRequest ============================================= IF ISCLEAR(XMLDoc) THEN CREATE(XMLDoc); XMLDoc.async := FALSE; XMLDoc.load('C:\TEMP\1.xml'); locautXmlHttp.setTimeouts(5000,160*0,160*1000,600*1000); locautXmlHttp.open('POST',req_link,FALSE); locautXmlHttp.SetRequestHeader('Content-type','application/x-www-form-urlencoded'); locautXmlHttp.send('xml_request='+XMLDoc.url); XMLDoc.load(locautXmlHttp.responseBody); XMLDoc.save('C:\TEMP\2.xml'); ============================================= Теперь пишу UrlEncode для XML, потому как XMLDoc.url > 4кб |
|