Das Posten von in SOAP verpacktem XML mit Curl führt zu Ausnahmen vom Typ „Ungültiges XML-Zeichen gefunden“

Das Posten von in SOAP verpacktem XML mit Curl führt zu Ausnahmen vom Typ „Ungültiges XML-Zeichen gefunden“

Das Senden einer XML-Datei mit curl führt zu:

Invalid XML character (Unicode : 0x<integer>)

Versuchen Sie, das Problem zu lösen

Entsprechenddiese SO-AntwortDas Problem wird behoben, wenn die XML-Version auf 1.1 geändert wird.

Obwohl die in der XML-Datei enthaltene Version aktualisiert wurde:

<?xml version="1.1" encoding="utf-8" standalone="yes"?>

curl scheint das XML weiterhin als Version 1.0 zu senden.

Zweiter Versuch, das Problem zu lösen

Ein weiterer Versuch bestand darin, den Header, der beim Posten mit curl verwendet wird, wie folgt zu ändern:

curl -X POST -H "Content-Type: text/xml; charset=utf-8; version=1.1"

Curl scheint dies zu ignorieren, da die Ausgabe darauf hinweist, dass XML-Version 1.0 verwendet wird:

* Closing connection #0
<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope

Dritter Versuch, das Problem zu lösen

@Ƭᴇcʜιᴇ007 hat empfohlen, eine kleine XML-Datei zu erstellen:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<soap:Envelope
    xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
    soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
    <soap:Body>
        <note>
            <to>Test</to>
        </note>
    </soap:Body>
</soap:Envelope>

Validiere die Syntax und poste sie anschließend:

An invalid XML character (Unicode : 0x<integer>) was found

Vierter Versuch, das Problem zu lösen

Entsprechenddiese Antwortdas Problem sollte nicht auftreten, da 0x<integer_greater_than_20>es größer als 0x20 ist.

Fünfter Versuch, das Problem zu lösen

Was bedeutet 0x<integer_greater_than_20>das? Lautdieser TischEs stellt lateinische Zeichen dar, die akzeptabel erscheinen.

Sechster Versuch, das Problem zu lösen

Vielleicht ist die XML-Datei ungültig? Nein, laut Notepad++s Option „XML-Syntax jetzt prüfen“ ist das XML gültig.

verwandte Informationen