Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 62894 Skopiuj do schowka Wysyłka JSON poprzez API na stronę ssl - problem z proxy
Autor Wiadomość
mordimer
Starszy Forumowicz


Posty: 25
Wysłany: 17-10-2018, 09:00   Wysyłka JSON poprzez API na stronę ssl - problem z proxy

Potrzebuję porady dotyczącej obsługi proxy podczas łączenia z szyfrowaną stroną ssl.
Plik xlsm wysyła dane JSON potrzebne do zalogowania (login i hasło), potem ma przesłać dane do założenia rekordu, a potem ma wylogować.
Na tzw serwerze otwartym (wystarczy mieć internet) makro działa bez zarzutu, po stronie mojego klienta przy próbie logowania pojawia się problem. Raczej chodzi o ustawienia proxy.
Szukałem po sieci różnych rozwiązań, ale niestety (próbując zdalnie się połączyć) pokazuje się błąd.
Próbowałem użyć metody:
Kod:
    Dim client As New WebClient
    With client
        .BaseUrl = MyURL 'adres https://ssl....
    '    .ProxyUsername = <user>
    '    .ProxyPassword = <password>
        .EnableAutoProxy = True
   
    End With
    Dim request As New WebRequest

    With request
    .Method = WebMethod.HttpGet
    .Format = WebFormat.PlainText
    End With
   
    Dim response As WebResponse
    Set response = client.Execute(request)


Makro wywala się na linijce: Dim client As New WebClient (zrzut w załączeniu).

Na tę chwilę nie znam poświadczeń, stały adres proxy został mi odradzony. Czy istnieje inna metoda, albo o co miałbym IT mojego klienta, żeby poprawnie móc się tam zalogować? Może powinienem jednak skorzystać z innej metody... tylko nie za bardzo mam jak korzystać z innego serwera z proxy, tylko po stronie klienta.

User-Defined error.jpg
Plik ściągnięto 694 raz(y) 6.53 KB

ID posta: 354692 Skopiuj do schowka
 
 
Tajan


Pomógł: 4286 razy
Posty: 9524
Wysłany: 17-10-2018, 10:01   

Nie masz odpowiednich komponentów aby uruchomić ten kod. Aby zadziałał konieczne jest dołączenie do twojego projektu modułów i klas ze strony
Kod:
https://github.com/VBA-tools/VBA-Web

Pobierz plik "VBA - WEB Installer.xlsm" i z jego pomocą dołącz niezbędne moduły.
ID posta: 354695 Skopiuj do schowka
 
 
mordimer
Starszy Forumowicz


Posty: 25
Wysłany: 17-10-2018, 12:35   

Dzięki wielkie!
Rozumiem, że plik u klienta po instalacji też będzie działał? Tj klient nie będzie musiał instalować tego pakietu po swojej stronie?
Czy fragment kodu jest poprawny? Nigdy go nie stosowałem i chciałbym od razu wystrzec się błędów, ewentualnie gdzie można byłoby o tym poczytać? Może znasz jakąś dobrą stronę z przykładami?
Bardzo dziękuję za pomoc.
ID posta: 354701 Skopiuj do schowka
 
 
Tajan


Pomógł: 4286 razy
Posty: 9524
Wysłany: 17-10-2018, 13:03   

Jeżeli w pliku u klienta będą odpowiednie klasy i moduły, to będzie działał. Ja tej biblioteki nie stosowałem oprócz króciutkich testów, więc się nie wypowiem o jej przydatności. Kod wygląda na poprawny, ale praktyce może być różnie.
Co do źródeł informacji, to też raczej nie pomogę. Ja korzystam z Google i nie mam jakichś konkretnych i wyczerpujących źródeł w tym temacie. Zbieram strzępki informacji i próbuję składać w całość. Pewnie, tak jak większość z nas :-)
ID posta: 354703 Skopiuj do schowka
 
 
kulasart
[Usunięty]

Wysłany: 17-10-2018, 14:04   

Co prawda używam własnego rozwiązania, ale testowałem ten projekt przez pewien czas.
Kod jest więcej niż poprawny. Jeżeli nie masz wiedzy/umiejętności/czasu/chęci na stworzenie własnego rozwiązania, to WebClient jest moim zdaniem najlepszą alternatywą.

Przykłady wraz z opisami znajdziesz w repozytorium projektu w folderze "examples", zaś w folderze "specs" znajdziesz testy. To plus kilka przykładów opisanych na Wiki powinno w zupełności wystarczyć do nauki.
ID posta: 354704 Skopiuj do schowka
 
 
mordimer
Starszy Forumowicz


Posty: 25
Wysłany: 24-10-2018, 13:37   

Nadal jest to samo: user-defined type not defined.
Wydaję mi się, że uruchomiłem z pliku VBA-Web Installer wymagane moduły: VBA-WEB i VBA-Dictionary do działania łączenia przez proxy.
Niestety jeszcze moja wiedza nie jest tak duża, żeby dochodzić dlaczego pokazuje się ten błąd.
Może jednak nie wszystko dobrze zrobiłem? Myślałem, że wystarczy zainstalować te komponenty i plik zacznie się łączyć przez proxy.
Nawet jeżeli wyłączam z działania jakiś fragment /... as dictionary to i tak potem każda kolejna funkcja pokazuje ten sam błąd: user-defined type not defined
Chyba nie dam rady tego opanować szybko, żeby zdążył z tym plikiem :(

User-defined not type 2018.10.24.jpg
Plik ściągnięto 8 raz(y) 95.55 KB

ID posta: 355138 Skopiuj do schowka
 
 
kulasart
[Usunięty]

Wysłany: 24-10-2018, 14:30   

Potrzebujesz jeszcze klasy Dictionary.
Kod:
https://github.com/VBA-tools/VBA-Dictionary
ID posta: 355147 Skopiuj do schowka
 
 
mordimer
Starszy Forumowicz


Posty: 25
Wysłany: 16-11-2018, 15:43   

Okazało się, że klient używa PAC File Script. Szukałem po sieci czegoś co bym mógł wprowadzić do swojego rozwiązania. Trafiłem na stronę:
https://gallery.technet.microsoft.com/scriptcenter/Resolving-Clients-fd2c140f#content
Jestem laikiem w temacie proxy a już poprzez excela nie wiem jak to zaimplementować.
To znaczy, jeżeli ten kod wystarczy uzupełnić o dane jak url, port to muszę zwrócić na jakieś inne elementy tego szczególną uwagę? Szukam po prostu uniwersalnego kodu. Ale nie wiem co mi jest potrzebne, żeby to zaczęło działać.
Owszem programuję w excelu, tworzę pliki oparte o przesyłanie JSON.. ale proxy przewyższa moje umiejętności i wiedzę.
Będę wdzięczny za każdą podpowiedź.
ID posta: 356450 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe