Ich untersuche, wie mehrere Werte für denselben Parameternamen in einer GET-Anforderung richtig übergeben werden können.
Ich habe URLs wie diese gesehen:
http://server/action?id=a&id=b
Und ich habe URLs wie diese gesehen:
http://server/action?id=a,b
Mein Verständnis ist, dass das erste richtig ist, aber ich kann keine Referenz dafür finden. Ich habe mir die http-Spezifikation angesehen, konnte aber nichts darüber sehen, wie der Abfrageteil einer URL aufgebaut sein sollte.
Ich möchte keine Antwort mit der Aufschrift "Beides ist in Ordnung". Wenn ich einen Webservice erstelle, möchte ich wissen, welche dieser Methoden Standard ist, damit Benutzer meines Webservices wissen, wie mehrere Parameter für denselben Namen übergeben werden.
Kann mich jemand auf eine offizielle Referenzquelle verweisen, um zu bestätigen, welche Option korrekt ist?
id=a&id=b
als boolesches UND undid=a,b
als boolesches ODER zu verwenden.?id=5&id=3
. PHP würde hier nur einen Wert für id einlesen. Wenn ich mich richtig erinnere, müsste es so aussehen, damit es mit PHP funktioniert:?id[]=5&id[]=3
since you are developing the APIs, I suggest you to do what is the easiest for you, since the caller of the API will not have much trouble creating the query string.
id=a,b
geht davon aus, dass das Koma,
ein gültiger Begrenzer ist. Ihre Parameterwerte können jedoch a enthalten,
. Dann muss der Client,
in den Abfrageparameterwerten maskieren. Aber Sie könnten entscheiden,;
ist besser. Dies bedeutet, dass Client und Server das offizielle Trennzeichen für Ihre API gemeinsam nutzen sollten.id=a&id=b
hat dieses Problem nicht, obwohl es URLs länger machtIch würde vorschlagen, zu prüfen, wie Browser standardmäßig mit Formularen umgehen. Schauen Sie sich zum Beispiel das Formularelement an
<select multiple>
und wie es mit mehreren Werten aus diesem Beispiel in w3schools umgeht.Für PHP verwenden:
Live-Beispiel von oben auf w3schools.com
Wenn Sie von oben auf "saab, opel" und dann auf "Senden" klicken, wird ein Ergebnis von cars = saab & cars = opel generiert . Dann je nach dem Back-End - Server, die Parameter Autos sollten stoßen als ein Array , dass Sie weiterverarbeiten können.
Ich hoffe, dies hilft jedem, der nach einer Standardmethode für die Behandlung dieses Problems sucht.
quelle