Hallo,
ich programmiere im Moment in C++ mit gSOAP. Ich versuche eine Verbindung mit affili.net aufzubauen (WSDL-Datei: https://developer-api.affili.net/V2.0/Logon.svc?wsdl).
Ich habe entsprechend der gSOAP-Anleitung die Stubs erstellt. Dabei wurde unter anderem die Datei soapDefaultEndpointLogonProxy.cpp erstellt. Anschließend habe ich folgende main-Methode geschrieben:
Wireshark zeigt, dass zwar eine Verbindung zum Server aufgebaut wird, es werden allerdings keine Daten übertragen. Die Verbindung wird sofort wieder abgebaut.
Ich habe mir die Sache mal im Debugger angeschaut und festgestellt, dass er die Methode DefaultEndpointLogonProxy::Logon betritt und dort dann bei folgendem Codeabschnitt die return-Anweisung ausführt:
Danach käme noch folgender Abschnitt, diesen führt er aber nicht aus:
Weiß jemand, woran das liegen kann?
Vielen Dank für eure Hilfe!
ich programmiere im Moment in C++ mit gSOAP. Ich versuche eine Verbindung mit affili.net aufzubauen (WSDL-Datei: https://developer-api.affili.net/V2.0/Logon.svc?wsdl).
Ich habe entsprechend der gSOAP-Anleitung die Stubs erstellt. Dabei wurde unter anderem die Datei soapDefaultEndpointLogonProxy.cpp erstellt. Anschließend habe ich folgende main-Methode geschrieben:
Code:
int main() { DefaultEndpointLogonProxy proxy; std::string str; ns3__Logon logon; std::string name = "XYZ"; std::string pass = "XXXX"; logon.Username = &name; logon.Password = &pass; ns3__TokenDeveloperDetails det; int id = 1; det.SandboxPublisherID = &id; ns3__TokenApplicationDetails appdet; appdet.ApplicationID = &id; appdet.DeveloperID = &name; logon.DeveloperSettings = &det; logon.ApplicationSettings = &appdet; logon.WebServiceType = ns3__WebServiceTypes__Publisher; if(proxy.Logon(&logon , str)==SOAP_OK) std::cout << "es geht" << std::endl; else std::cout << "es geht nicht" << std::endl; return 0; }
Ich habe mir die Sache mal im Debugger angeschaut und festgestellt, dass er die Methode DefaultEndpointLogonProxy::Logon betritt und dort dann bei folgendem Codeabschnitt die return-Anweisung ausführt:
Code:
if (soap_connect(soap, soap_endpoint, soap_action) || soap_envelope_begin_out(soap) || soap_putheader(soap) || soap_body_begin_out(soap) || soap_put___ns1__Logon(soap, &soap_tmp___ns1__Logon, "-ns1:Logon", "") || soap_body_end_out(soap) || soap_envelope_end_out(soap) || soap_end_send(soap)) return soap_closesock(soap);
Code:
soap_default_std__string(soap, &ns1__CredentialToken); if (soap_begin_recv(soap) || soap_envelope_begin_in(soap) || soap_recv_header(soap) || soap_body_begin_in(soap)) return soap_closesock(soap); soap_tmp___ns1__LogonResponse = soap_get___ns1__LogonResponse(soap, NULL, "-ns1:LogonResponse", ""); if (soap->error) { if (soap->error == SOAP_TAG_MISMATCH && soap->level == 2) return soap_recv_fault(soap); return soap_closesock(soap); } if (soap_body_end_in(soap) || soap_envelope_end_in(soap) || soap_end_recv(soap)) return soap_closesock(soap); ns1__CredentialToken = soap_tmp___ns1__LogonResponse->ns1__CredentialToken; return soap_closesock(soap);
Vielen Dank für eure Hilfe!
Comment