UTF8 пробовали? Это единственная кодировка, с которой оно в принципе могло бы работать.
Отправка сообщений посредвством drweb c командной строки
#21
Отправлено 20 Октябрь 2016 - 19:34
#22
Отправлено 21 Октябрь 2016 - 10:16
UTF8 пробовали? Это единственная кодировка, с которой оно в принципе могло бы работать.
пробовал chcp 65001 - это вроде как и есть UTF8. Может как-то самим curl'ом можно завернуть это в utf-8? Пробовал им, но пока не раздуплю как правильно это сделать. У него за это отвечает как я понял параметр -d и --data-urlencode. Но что-то никак не выходит, то ошибка, то без результата
#23
Отправлено 21 Октябрь 2016 - 10:36
Вот тут ответ - https://forum.drweb.com/index.php?showtopic=319996#entry751669
#24
Отправлено 21 Октябрь 2016 - 10:52
Вот тут ответ - https://forum.drweb.com/index.php?showtopic=319996#entry751669
так вот в том и беда.. не могу грамотно завернуть в URLEncode. Не пойму как что-то
#25
Отправлено 21 Октябрь 2016 - 11:40
-d и --data-urlencode тут не нужно, потому что это HTTP POST.
Можно посмотреть с флагом -v, что там вообще уходит, и плясать от этого. Или по логам серверам посмотреть, что приходит.
#26
Отправлено 26 Октябрь 2016 - 09:54
сделал с флагом -V c разными кодировками, что можете сказать? ВО всех трех случаях сообщение доставляется с ??????? вместо русских букв
chcp 1251 Текущая кодовая страница: 1251 C:\curl>curl -u admin:Password -k -v "http://localhost:9080/api/3.0/station s/send-message.ds?id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&message=Проверка" * Trying localhost... * TCP_NODELAY set * Connected to localhost (localhost) port 9080 (#0) * Server auth using Basic with user 'admin' > GET /api/3.0/stations/send-message.ds?id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx& message=Проверка HTTP/1.1 > Host: localhost:9080 > Authorization: Basic YWRtaW46QmZ3ITU0OTA2 > User-Agent: curl/7.50.3 > Accept: */* > < HTTP/1.1 200 OK < Connection: keep-alive < Content-Length: 381 < Content-Type: text/xml; charset=utf-8 < Date: Mon, 24 Oct 2016 09:27:08 GMT < Keep-Alive: timeout=15 < Last-Modified: Mon, 24 Oct 2016 09:27:08 GMT < Server: DrWebEnterpriseServer/REL-600-6.00.4.201211200 Windows_Server 2003/x86 Lua/5.1.4 OpenSSL/0.9.8t < <?xml version="1.0" encoding="utf-8"?><drweb-es-api api_build='201206051' api_ve rsion='3.1.7' local_timestamp='1477312028' operation='stations-send-message' ser ver='localhost' srv_branch='REL-600' srv_version='6.00.4.201211200' status=' true' timestamp='1477301228'><stations total='1'><station id=xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxstatus='true'/></stations></drweb-es-api>* Curl_http_done: c alled premature == 0 * Connection #0 to host localhost left intact
chcp 65001 Active code page: 65001 C:\curl>curl -u admin:Password -k -v "http://localhost:9080/api/3.0/station s/send-message.ds?id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&message=��������" * Trying localhost... * TCP_NODELAY set * Connected to localhost (localhost) port 9080 (#0) * Server auth using Basic with user 'admin' > GET /api/3.0/stations/send-message.ds?id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx& message=???????? HTTP/1.1 > Host: localhost:9080 > Authorization: Basic YWRtaW46QmZ3ITU0OTA2 > User-Agent: curl/7.50.3 > Accept: */* > < HTTP/1.1 200 OK < Connection: keep-alive < Content-Length: 381 < Content-Type: text/xml; charset=utf-8 < Date: Mon, 24 Oct 2016 09:22:39 GMT < Keep-Alive: timeout=15 < Last-Modified: Mon, 24 Oct 2016 09:22:39 GMT < Server: DrWebEnterpriseServer/REL-600-6.00.4.201211200 Windows_Server 2003/x86 Lua/5.1.4 OpenSSL/0.9.8t < <?xml version="1.0" encoding="utf-8"?><drweb-es-api api_build='201206051' api_ve rsion='3.1.7' local_timestamp='1477311759' operation='stations-send-message' ser ver='localhost' srv_branch='REL-600' srv_version='6.00.4.201211200' status=' true' timestamp='1477300959'><stations total='1'><station id=xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxstatus='true'/></stations></drweb-es-api>* Curl_http_done: c alled premature == 0 * Connection #0 to host localhost left intact
C:\curl>curl -u admin:Password -k -v "http://localhost:9080/api/3.0/station s/send-message.ds?id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx&message=╧ЁютхЁър" * Trying localhost... * TCP_NODELAY set * Connected to localhost (localhost) port 9080 (#0) * Server auth using Basic with user 'admin' > GET /api/3.0/stations/send-message.ds?id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx& message=│ЁютхЁър HTTP/1.1 > Host: localhost:9080 > Authorization: Basic YWRtaW46QmZ3ITU0OTA2 > User-Agent: curl/7.50.3 > Accept: */* > < HTTP/1.1 200 OK < Connection: keep-alive < Content-Length: 381 < Content-Type: text/xml; charset=utf-8 < Date: Mon, 24 Oct 2016 08:56:19 GMT < Keep-Alive: timeout=15 < Last-Modified: Mon, 24 Oct 2016 08:56:19 GMT < Server: DrWebEnterpriseServer/REL-600-6.00.4.201211200 Windows_Server 2003/x86 Lua/5.1.4 OpenSSL/0.9.8t < <?xml version="1.0" encoding="utf-8"?><drweb-es-api api_build='201206051' api_ve rsion='3.1.7' local_timestamp='1477310179' operation='stations-send-message' ser ver='localhost' srv_branch='REL-600' srv_version='6.00.4.201211200' status=' true' timestamp='1477299379'><stations total='1'><station id=xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxstatus='true'/></stations></drweb-es-api>* Curl_http_done: c alled premature == 0 * Connection #0 to host localhost left intact
Сообщение было изменено rivaldo89: 26 Октябрь 2016 - 09:56
#27
Отправлено 26 Октябрь 2016 - 14:16
Греп по курловому мануалу дал нечто такое:
curl -u admin:Password -k -v -G --data-urlencode id=x --data-urlencode message=Проверка "http://localhost:9080/api/3.0/stations/send-message.ds"
И это не отменяет необходимости использовать utf8 тут.
#28
Отправлено 26 Октябрь 2016 - 15:40
Греп по курловому мануалу дал нечто такое:
curl -u admin:Password -k -v -G --data-urlencode id=x --data-urlencode message=Проверка "http://localhost:9080/api/3.0/stations/send-message.ds"
И это не отменяет необходимости использовать utf8 тут.
к сожалению и таким способом не пропускает русские символы. Даже указывая кодировку в cmd chcp 65001 и другие. Не пойму вообще в чем косяк, хоть убей, вместо русских символов - "??????????"
Сообщение было изменено rivaldo89: 26 Октябрь 2016 - 15:41
#29
Отправлено 26 Октябрь 2016 - 15:44
Что в вербозном выводе курла?
#30
Отправлено 26 Октябрь 2016 - 16:16
Что в вербозном выводе курла?
вот
C:\curl>curl -u admin:Password -k -v -G --data-urlencode id=xxxxxxxx xxxxxxxx --data-urlencode message=╧ЁютхЁър "http://localhost:9080/a pi/3.0/stations/send-message.ds" * Trying localhost... * TCP_NODELAY set * Connected to localhost (localhost) port 9080 (#0) * Server auth using Basic with user 'admin' > GET /api/3.0/stations/send-message.ds?id=xxxxxxxxxxxxxxxx& message=%A6%A8%FE%F2%F5%A8%FA%F0 HTTP/1.1 > Host: localhost:9080 > Authorization: Basic YWRtaW46QmZ3ITU0OTA2 > User-Agent: curl/7.50.3 > Accept: */* > < HTTP/1.1 200 OK < Connection: keep-alive < Content-Length: 381 < Content-Type: text/xml; charset=utf-8 < Date: Wed, 26 Oct 2016 13:10:13 GMT < Keep-Alive: timeout=15 < Last-Modified: Wed, 26 Oct 2016 13:10:13 GMT < Server: DrWebEnterpriseServer/REL-600-6.00.4.201211200 Windows_Server 2003/x86 Lua/5.1.4 OpenSSL/0.9.8t < <?xml version="1.0" encoding="utf-8"?><drweb-es-api api_build='201206051' api_ve rsion='3.1.7' local_timestamp='1477498213' operation='stations-send-message' ser ver='localhost' srv_branch='REL-600' srv_version='6.00.4.201211200' status=' true' timestamp='1477487413'><stations total='1'><station id='xxxxxxxx -xxxxxxxx' status='true'/></stations></drweb-es-api>* Curl_http_done: c alled premature == 0 * Connection #0 to host localhost left intact
chcp 1251 Текущая кодовая страница: 1251 C:\Users\User\Desktop>CD C:\curl C:\curl>curl -u admin:Password -k -v -G --data-urlencode id=xxxxxxxx xxxxxxxx --data-urlencode message=Проверка "http://localhost:9080/a pi/3.0/stations/send-message.ds" * Trying localhost... * TCP_NODELAY set * Connected to localhost (localhost) port 9080 (#0) * Server auth using Basic with user 'admin' > GET /api/3.0/stations/send-message.ds?id=xxxxxxxxxxxxxxxx& message=%CF%F0%EE%E2%E5%F0%EA%E0 HTTP/1.1 > Host: localhost:9080 > Authorization: Basic YWRtaW46QmZ3ITU0OTA2 > User-Agent: curl/7.50.3 > Accept: */* > < HTTP/1.1 200 OK < Connection: keep-alive < Content-Length: 381 < Content-Type: text/xml; charset=utf-8 < Date: Wed, 26 Oct 2016 13:10:40 GMT < Keep-Alive: timeout=15 < Last-Modified: Wed, 26 Oct 2016 13:10:40 GMT < Server: DrWebEnterpriseServer/REL-600-6.00.4.201211200 Windows_Server 2003/x86 Lua/5.1.4 OpenSSL/0.9.8t < <?xml version="1.0" encoding="utf-8"?><drweb-es-api api_build='201206051' api_ve rsion='3.1.7' local_timestamp='1477498240' operation='stations-send-message' ser ver='localhost' srv_branch='REL-600' srv_version='6.00.4.201211200' status=' true' timestamp='1477487440'><stations total='1'><station id='xxxxxxxx -xxxxxxxx' status='true'/></stations></drweb-es-api>* Curl_http_done: c alled premature == 0 * Connection #0 to host localhost left intact
chcp 65001 Active code page: 65001 C:\Users\User\Desktop>CD C:\curl C:\curl>curl -u admin:Password -k -v -G --data-urlencode id=xxxxxxxx xxxxxxxx --data-urlencode message=�������� "http://localhost:9080/a pi/3.0/stations/send-message.ds" * Trying localhost... * TCP_NODELAY set * Connected to localhost (localhost) port 9080 (#0) * Server auth using Basic with user 'admin' > GET /api/3.0/stations/send-message.ds?id=xxxxxxxxxxxxxxxx& message=%3F%3F%3F%3F%3F%3F%3F%3F HTTP/1.1 > Host: localhost:9080 > Authorization: Basic YWRtaW46QmZ3ITU0OTA2 > User-Agent: curl/7.50.3 > Accept: */* > < HTTP/1.1 200 OK < Connection: keep-alive < Content-Length: 381 < Content-Type: text/xml; charset=utf-8 < Date: Wed, 26 Oct 2016 13:11:16 GMT < Keep-Alive: timeout=15 < Last-Modified: Wed, 26 Oct 2016 13:11:16 GMT < Server: DrWebEnterpriseServer/REL-600-6.00.4.201211200 Windows_Server 2003/x86 Lua/5.1.4 OpenSSL/0.9.8t < <?xml version="1.0" encoding="utf-8"?><drweb-es-api api_build='201206051' api_ve rsion='3.1.7' local_timestamp='1477498276' operation='stations-send-message' ser ver='localhost' srv_branch='REL-600' srv_version='6.00.4.201211200' status=' true' timestamp='1477487476'><stations total='1'><station id='xxxxxxxx -xxxxxxxx' status='true'/></stations></drweb-es-api>* Curl_http_done: c alled premature == 0 * Connection #0 to host localhost left intact
#31
Отправлено 26 Октябрь 2016 - 16:23
Очевидно, что из консоли в curl приходит уже нечто кривое. Понятия не имею, как это сделать из виндового терминала, чтобы пользовательский ввод конвертился в юникод, но могу предложить попробовать bat'ник, который уже сохранён в utf8.
#32
Отправлено 26 Октябрь 2016 - 16:32
Из виндовой консоли, в которой 866, думаю, ничего кроме 866, никогда, и не уйдет нормально.
#33
Отправлено 26 Октябрь 2016 - 16:37
#34
Отправлено 26 Октябрь 2016 - 16:56
Из виндовой консоли, в которой 866, думаю, ничего кроме 866, никогда, и не уйдет нормально.
Ну почему, вот 1251 оттуда как-то уходит. Зато 866 в последней попытке сломалась. Подозреваю, может просто потребоваться определённая ловкость рук.
#35
Отправлено 26 Октябрь 2016 - 17:01
cygwin
Хорошая идея, там и iconv есть, если совсем надо.
Может, еще в PowerShell всё получится. По идее, считай что штатная тема в Шindows.
#36
Отправлено 26 Октябрь 2016 - 17:11
$ curl -u admin:pass -k -v -G --data-urlencode id=6095deea-d11d-b211-a268-b00113a0deaa --data-urlencode message=Проверка123 "http://server:9080/api/3.0/stations/send-message.ds" -v % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Trying 192.168.0.16... * Connected to server (192.168.0.16) port 9080 (#0) * Server auth using Basic with user 'admin' > GET /api/3.0/stations/send-message.ds?id=6095deea-d11d-b211-a268-b00113a0deaa&message=%CF%F0%EE%E2%E5%F0%EA%E0123 HTTP/1.1 > Host: server:9080 > Authorization: Basic YWRtaW46YWRtaW4= > User-Agent: curl/7.50.1 > Accept: */* > < HTTP/1.1 200 OK < Connection: keep-alive < Content-Length: 286 < Content-Type: text/xml; charset=utf-8 < Date: Wed, 26 Oct 2016 14:08:17 GMT < Keep-Alive: timeout=15 < Last-Modified: Wed, 26 Oct 2016 14:08:17 GMT < Server: DrWebServer/REL-1000-10.00.0.201507030 Windows_Server 2008 R2/x64 Lua/5.1.4 OpenSSL/1.0.1n zlib/1.2.8 UNICODE/52.1 < x-drweb-api-status: true < X-DrWeb-API-Version: 40003 < X-DrWeb-Srv: b80e2fd8-7deb-2564-7399-5ab43f5dbe43 < X-DrWeb-Srv-Type: ESuite < X-DrWeb-Srv-Version: 1000201608110 < { [286 bytes data] 100 286 100 286 0 0 1079 0 --:--:-- --:--:-- --:--:-- 1079Че-то правда не utf-8.
#37
Отправлено 26 Октябрь 2016 - 17:15
Doctor Web, Ltd.
#38
Отправлено 26 Октябрь 2016 - 17:19
Точно! iconv рекодит. Наверное и под Windows его можно найти.Хорошая идея, там и iconv есть, если совсем надо.cygwin
Может, еще в PowerShell всё получится. По идее, считай что штатная тема в Шindows.
Powershell был бы самый занятный вариант.
Жесть конечно, но работает, но только в cygwin и git bash
$ curl -u admin:admin -k -v -G --data-urlencode id=6095deea-d11d-b211-a268-b00113a0deaa --data-urlencode message=`echo Проверка123|iconv -f cp1251 -t utf-8` "http://pdc-server:9080/api/3.0/stations/send-message.ds" > GET /api/3.0/stations/send-message.ds?id=6095deea-d11d-b211-a268-b00113a0deaa&message=%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0123 HTTP/1.1
Сообщение было изменено IlyaS: 26 Октябрь 2016 - 17:23
#39
Отправлено 26 Октябрь 2016 - 17:21
Если вопрос мне, то 7-ка.а винда какая?
#40
Отправлено 26 Октябрь 2016 - 18:06
Подозреваю, может просто потребоваться определённая ловкость рук.
А может еще потребоваться поставить в системе определенный язык по дефолту и кодировку для неюникода.
Читают тему: 0
0 пользователей, 0 гостей, 0 скрытых