|  25.10.2012, 10:40 | #1 | 
| Участник | http post из Аксапты 3,0 - как получить файл ? 
			
			Здраствуйте , Раньше вы помогли мне с етим делом . Тогда была задачя обрашаться на веб сервис и получить адрес .http.responseText() , всё работало . Примерчик : X++: req_params = strfmt( "user=%1&pass=%2&pack_no=%3", 'uuu', psw'', packs ); req_len = strfmt( "%1", strlen( req_params ) ); http = new XMLHttpRequest(); http.open( "POST", url ); http.setRequestHeader( "Content-type", "application/x-www-form-urlencoded" ); http.setRequestHeader( "Content-length", req_len ); http.setRequestHeader( "Connection", "close" ); http.send( req_params ); response = http.responseText(); infoLog.urlLookup( response ); По трейке - оно возвращает вот такое : X++: %PDF-1.7
3 0 obj
<</Type /Page /Parent 1 0 R /MediaBox [0 0 841.89 595.28] /Group << /Type 
/Group /S /Transparency /CS /DeviceRGB >> /Resources 2 0 R
/Contents 4 0 R>> endobj
4 0 obj
<</Filter /FlateDecode /Length 2123>> stream
x??s????}?
??v(!??t:?L?#\2}??,'>?kc?I??u????e??g?????O????qN'????LP???f?p*,??
T???????/?U]#??p???%?v???C?3?N?????u?zm>??|??pu?c??7^2#?d?]?t5??????JF0??8ft%???-d?bR#?-?)c?X?a?e??U???g2 
e???[?y=????7?kv?v|`k?A?pm
???q\2?????#1pB1opX;??kX?e
???>D!???
m|?E???l?????
?[???
??%??P?f???VU???%??Y|??7?*???????????z?_??b?950q*?^m,s?9???|?A?Wz?J?J@J?Y(?-k$?dN?dM(9!S??????^??????[?=(?
?[??E?M,\???????o?0????.??K?~S?n????/V??y|l??`??Y?j0i9}7?KO???9]\?С уважением , Римантас | 
|  | 
|  25.10.2012, 11:12 | #2 | 
| Участник | 
			
			Что-то мне подсказывает, что никак. PDF - бинарный файл, а responseText возвращает строку.  Вообще в аксапте с этим беда. Если бинарные данные положить в строку, то она обрежется на первом нулевом символе, что логично. Даже если получится получить данные через класс Binary, то проблема их оттуда забрать - только побайтно (точнее пословно) в файл записывать, что долго. Последний раз редактировалось Lucky13; 25.10.2012 в 11:27. | 
|  | 
|  25.10.2012, 12:11 | #3 | 
| Участник | Цитата: 
		
			Сообщение от Lucky13
			   Что-то мне подсказывает, что никак. PDF - бинарный файл, а responseText возвращает строку.  Вообще в аксапте с этим беда. Если бинарные данные положить в строку, то она обрежется на первом нулевом символе, что логично. Даже если получится получить данные через класс Binary, то проблема их оттуда забрать - только побайтно (точнее пословно) в файл записывать, что долго.  А как там "класс Binary" , если попробывать вставить в файлик ? Вы можете сказать где искать примерчика ? | 
|  | 
|  25.10.2012, 15:57 | #4 | 
| NavAx | 
			
			Может анализ класса XmlHttpRequest и анализ http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx натлокнет на что нибудь.
		 | 
|  | 
|  25.10.2012, 16:34 | #5 | 
| Участник | Цитата: 
		
			Сообщение от raz
			   Может анализ класса XmlHttpRequest и анализ http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx натлокнет на что нибудь.  . Первая проблема - как сделать в классе XmlHttpRequest в Аксапте метод responseType() ?  Из MsDn : object.responseType = ptr ptr = object.responseType То есть какой тип метода должен быть ? Текстовый метод ? Обнаружив какой тип данных следует следующие шаги ... А может кто нибудь подделиться исходником классой XmlHttpRequest . Теперь в 3,0 Аксапте , ета класса создаеться так : myself = new COM('Microsoft.XMLHTTP'); Но как видно , в 3,0 нету многих методов етого COM ... Последний раз редактировалось Rimantas; 25.10.2012 в 16:38. | 
|  | 
|  25.10.2012, 16:45 | #6 | 
| NavAx | 
			
			В DAX3 еще есть \Classes\WinInet\internetReadFile
		 | 
|  | 
|  25.10.2012, 17:02 | #7 | 
| Участник | Цитата: 
		
			Сообщение от Rimantas
			   Если XmlHttpRequest класса негодиться для етого , может быть есть какая то другая класса , с которой можно что-то  похоже сделать ? WebSession ?  Работаю со старой 3,0 Аксаптой , возможности небогатые , но думаю как нибудь можно найти решение ...   А как там "класс Binary" , если попробывать вставить в файлик ? Вы можете сказать где искать примерчика ? Про другие классы можно сказать тоже самое. У меня тоже 3.0 и я всячески пытался получать бинарные данные, но ничего не получилось. Может быть в старших версиях, где есть .Net так можно, а в тройке даже если получится получить указатель на бинарные данные, то не получится их оттуда прочитать. То есть не понятно как преобразовать апишный ExtTypes Pointer к аксаптовскому типу. По-моему, даже где-то была тема про возвращение бинарных данных API-функцией и там пришли к выводу, что получить их можно только прочитав в цикле из класса Binary в какой-нибудь контейнер или записав в файл, но это долгая операция. | 
|  | 
|  25.10.2012, 17:06 | #8 | 
| NavAx | |
|  | |
| За это сообщение автора поблагодарили: Krasher (1), Player1 (1). | |
|  | 
| Опции темы | Поиск в этой теме | 
| Опции просмотра | |
| 
 |