Вот сценарий: мне нужно подключиться к веб-сайту для получения результатов электронных лабораторных работ в формате XML. Для подключения мне нужно использовать цифровой сертификат.
Мне удалось получить версию этой работы в Perl. Это выглядит так:
#!/usr/bin/env perl
use strict;
use WWW::Mechanize;
$|++;
my $username = 'xxx';
my $password = 'yyy';
$ENV{HTTPS_PKCS12_FILE} = 'CERTFILE.pfx';
$ENV{HTTPS_PKCS12_PASSWORD} = 'PathCert';
my $mech = WWW::Mechanize->new();
$mech->agent_alias('Windows IE 6');
$mech->get("https://www.example.org/xyz/,DanaInfo=999.33.1.10+");
$mech->get("https://www.example.org/xyz/isapi_pathnet.dll?Page=Login&Mode=Silent&UserID=xxx&Password=yyy,DanaInfo=999.33.1.10");
$mech->get("https://www.example.org/xyz/isapi_pathnet.dll?Page=HL7&Query=NewRequests,DanaInfo=999.33.1.10");
print $mech->content();
Теперь это работает, когда я запускаю его со своей рабочей станции. Однако:
- Если я скомпилирую его с помощью perl2exe, он не будет работать.
- Если я пытаюсь скомпилировать его с помощью pp (например, «pp -r sslclient.pl»), все, что я получаю, это «500 согласование SSL не удалось»:
- Если я скопирую весь этот каталог на другой компьютер, скрипт просто зависнет при первом операторе $ mech-> get ().
- Что я действительно хочу, так это найти эквивалент этого в Python (остальная часть моего приложения - Python), но пока не повезло.
Итак, здесь много проблем. У кого-нибудь есть идеи?