Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Probleme bei der Kodierung mit Pluszeichen

Das Kodierungsverhalten in Talend Cloud API Tester hat sich geändert, was Probleme bei Abfragen mit Pluszeichen verursachen kann.

In Talend Cloud API Tester wurde von der Webform- zur Prozentkodierung umgeschaltet. Diese Änderung wurde vorgenommen, um die Unterstützung für OData-APIs, wie die in Talend Cloud Data Inventory generierten APIs, zu verbessern. Das sollte keinerlei Auswirkungen für Sie haben, außer bei Verwendung von Abfrageparametern mit Pluszeichen (+), die als Leerzeichen interpretiert werden müssen.

Die Pluszeichen werden von Talend Cloud API Tester nicht mehr als Kodierung eingestuft, d. h. die Option Encode before sending (Kodieren vor Senden) wird für Abfrageparameter, die ein + enthalten, standardmäßig aktiviert. Bei deaktivierter Option wird das + als %2B kodiert und damit als tatsächliches Pluszeichen und nicht als Leerzeichen ausgelegt.

Um dieses Problem zu vermeiden, stehen Ihnen folgende Möglichkeiten zur Verfügung:
  • Deaktivieren Sie die Option Encode before sending (Kodieren vor Senden) für den Abfrageparameter.
  • Ersetzen Sie +-Zeichen durch Leerzeichen bzw. durch die neue Kodierung für Leerzeichen: %20.

Weitere Informationen zur Kodierungsfunktion finden Sie unter Query parameter encoding.

Beispiel

Sie möchten in der Star Wars-API nach Leia Organa suchen. Verwenden Sie dazu Folgendes:
  • https://swapi.dev/api/people/?search=Leia Organa: In diesem Fall wird der Abfrageparameter kodiert.
  • https://swapi.dev/api/people/?search=Leia%20Organa: In diesem Fall wird der Abfrageparameter nicht kodiert.
Bei beiden Optionen gibt der Request das erwartete Ergebnis zurück, und auf der Registerkarte HTTP wird der Request im prozentkodierten Format angezeigt.
Bei dem früheren Verhalten hätte https://swapi.dev/api/people/?search=Leia+Organa dasselbe Resultat ergeben. Bei der aktuellen Kodierung wird der Abfrageparameter jedoch standardmäßig kodiert. Dieser Request gibt keine Ergebnisse zurück, und auf der Registerkarte HTTP wird der kodierte Request angezeigt, wobei + als %2B kodiert wird.
Wenn Sie die Option Encode before sending (Kodieren vor Senden) deaktivieren, erhalten Sie das erwartete Ergebnis.

Hat diese Seite Ihnen geholfen?

Wenn Sie ein Problem mit dieser Seite oder ihrem Inhalt feststellen, sei es ein Tippfehler, ein ausgelassener Schritt oder ein technischer Fehler, informieren Sie uns bitte!