Programm hängt sich bei SendRequest() auf



  • Hallo, und zwar schreibe ich momentan ein Programm, welches Zugriff auf einen Webservice ermöglichen soll.

    Das senden der Daten an den Server klappt soweit, solang ich nicht die Länge der gesendeten Daten angebe, welche hier aber wichtig ist.

    Sobald ich die Datenlänge mit angebe hängt sich das Programm auf und bringt keine Rückmeldung mehr.

    Mein Quellcode sieht wie folgt aus:

    // Requeststring 
    		CString xmlreq;
    		xmlreq = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
    		xmlreq += "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">";
    		xmlreq += "<soap:Body>";
    		xmlreq += "<online xmlns=\"http://tempuri.org/\" />";
    		xmlreq += "</soap:Body>";
    		xmlreq += "</soap:Envelope>";
    
    		CString length;
    		int laenge = xmlreq.GetLength();	
    		length.Format("%i",laenge);
    		length = "Content-Length: " + length;
    
    		// Request Headers zusammenstellen
    		file->AddRequestHeaders("HTTP/1.1");
    		file->AddRequestHeaders("Content-Type: text/xml; charset=utf-8");
    		file->AddRequestHeaders("SOAPAction: \"http://tempuri.org/online\"");
    		file->AddRequestHeaders(length);
    
    		// Versuch die Anfrage zu senden
    		try
    		{		
    			file->SendRequest(xmlreq);					
    		}		
    		catch(CException *e)
    		{
    			e->ReportError();
    			e->Delete();
    		}
    

    Ich hoffe mir kann jemand helfen. 🙂

    // Edit

    Ok habe meinen Fehler gefunden. So viele Header brauch ich garnicht zu senden.
    der SendRequest sollte ja eher so aussehen:

    file->SendRequest(NULL, 0, (LPVOID)(LPCTSTR)xmlreq, laenge);
    

Anmelden zum Antworten