C# Wyszukiwarka REGON WSDL

0

Witam

Chciałbym dziś prosić o pomoc w związku z implementacją nowej biblioteki do pobierania danych podmiotów gospodarczych z GUS przy pomocy ich wyszukiwarki REGON, konkretniej udostępnianego API.

Niestety przy próbie użycia WSDL’a, a dokładniej w momencie tworzenia instancji klasy klienta (UslugaBIRzewnPublClient) występuje poniższy błąd:

"An unhandled exception of type 'System.InvalidOperationException' occurred in System.ServiceModel.dll

Additional information: Nie można odnaleźć domyślnego elementu punktu końcowego odwołującego się do kontraktu „BIR.IUslugaBIRzewnPubl” w sekcji konfiguracji klienta ServiceModel. Może to być spowodowane tym, że nie znaleziono pliku konfiguracji dla używanej aplikacji lub tym, że w elemencie klienta nie znaleziono elementu punktu końcowego pasującego do tego kontraktu.”

Do tworzenia instancji używany jest konstruktor bezparametrowy (próby użycia konstruktora z parametrem endPointConfigurationName również kończą się niepowodzeniem)."

Tak wygląda app.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name="e3">
                    <security mode="Transport">
                        <transport clientCredentialType="None" />
                    </security>
                </binding>
            </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://Wyszukiwarkaregontest.stat.gov.pl/wsBIR/UslugaBIRzewnPubl.svc"
                binding="wsHttpBinding" bindingConfiguration="e3" contract="BIR.IUslugaBIRzewnPubl"
                name="e3" />
        </client>
    </system.serviceModel>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
 

Natomiast w tym momencie występuje wyjątek:

BIRClient = new BIR.UslugaBIRzewnPublClient(); 

Niestety przy próbie użycia konstruktora z parametrem endPointConfigurationName również brak pozytywnych rezultatów.

Byłbym wdzięczny, gdyby ktoś, kto już korzystał z owej wyszukiwarki podpowiedział co nieco.

Pozdrawiam

0

Nie mogłem edytować powyższego postu, to też pozwolę sobie napisać tutaj.

Problem już rozwiązałem, jak się okazuje App.config musi znaleźć się w aplikacji docelowej, nie w bibliotece - mój błąd.

Stąd też moje pytanie, czy istnieje możliwość by zrealizować to bez App.config'u? Tj. czy (jak) można zakodować te ustawienia wewnątrz aplikacji??

Z góry dziękuję za podpowiedzi

0

Podbijam bo mam podobny problem, zalogować się do WebService'a mogę bez problemu lecz wymagane jest dodawanie sid'u otrzymanego w wyniku wykonania Zaloguj do każdego następnego nagłowka HTTP.
Dlatego przy wywołaniu PobierzCaptcha() zwraca mi zawsze -1.

Czy ktoś może próbował łączyć się z WebSerivcem GUSu i pobrać captche itd?

0

mi przy zaloguj wraca
Additional information: Typ zawartości multipart/related; type="application/xop+xml";start="http://tempuri.org/0";boundary="uuid:0cb071a6-3d45-48e0-b917-5991bd91afc2+id=453296";start-info="application/soap+xml" komunikatu odpowiedzi nie zgadza się z typem zawartości powiązania (application/soap+xml; charset=utf-8). Jeśli używasz niestandardowego kodera, upewnij się, czy metoda IsContentTypeSupported jest zaimplementowana poprawnie.

0

udalo sie trzeba bylo ustawic
WSHttpBinding wsBinding = new WSHttpBinding();
wsBinding.MessageEncoding = WSMessageEncoding.Mtom;

0
tomeks11 napisał(a):

udalo sie trzeba bylo ustawic
WSHttpBinding wsBinding = new WSHttpBinding();
wsBinding.MessageEncoding = WSMessageEncoding.Mtom;

Mam ten sam błąd i to niestety nie pomaga. Czy może ktoś pomóc?

1

Trzeba dopisać messageEncoding="Mtom" w:

<wsHttpBinding>
    <binding name="e3" messageEncoding="Mtom">
        <security mode="Transport">
            <transport clientCredentialType="None" />
        </security>
    </binding>
</wsHttpBinding>

1 użytkowników online, w tym zalogowanych: 0, gości: 1