Ressourcenanforderung von Xamarin-Anwendungen
improve this page | report issueÜbersicht
Mit der IBM Mobile Foundation erstellte Anwendungen können mit der REST-API WorklightResourceRequest
auf Ressourcen zugreifen.
Die REST-API funktioniert mit allen Adaptern und externen Ressourcen.
Voraussetzungen:
- Stellen Sie sicher, dass das SDK der Mobile Foundation zu Ihrer nativen Xamarin-Anwendung hinzugefügt wurde.
- Informieren Sie sich über das Erstellen von Adaptern.
WLResourceRequest
Die Klasse WorklightResourceRequest
handhabt an Adapter oder externe Ressourcen gerichtete Ressourcenanforderungen.
Erstellen Sie ein WorklightResourceRequest
-Objekt und geben Sie den Pfad zu der Ressource und die HTTP-Methode an.
Verfügbare Methoden sind GET
, POST
, PUT
und DELETE
.
URI adapterPath = new URI("/adapters/JavaAdapter/users",UriKind.Relative);
WorklightResourceRequest request = WorklightClient.CreateInstance.ResourceRequest(adapterPath,"GET");
- Verwenden Sie für JavaScript-Adapter
/adapters/{AdapterName}/{procedureName}
. - Verwenden Sie für Java-Adapter
/adapters/{AdapterName}/{path}
. Die Angabe fürpath
hängt davon ab, wie Sie Ihre@Path
-Annotationen im Java-Code definiert haben. Eingeschlossen sind auch alle verwendeten@PathParam
-Annotationen. - Wenn Sie auf Ressourcen außerhalb des Projekts zugreifen möchten, verwenden Sie die vollständige URL nach Maßgabe des externen Servers.
- timeout: Anforderungszeitlimit in Millisekunden (optional)
- scope: Optional, wenn Sie wissen, mit welchem Bereich die Ressource geschützt wird. Durch Angabe dieses Bereichs kann die Abfrage effizienter werden.
Anforderung senden
Fordern Sie die Ressource mit der Methode .send()
an.
WorklightResponse response = await request.send();
Verwenden Sie das Objekt WorklightResponse response
, um die vom Adapter abgerufenen Daten zu erhalten.
Das Objekt response
enthält die Antwortdaten. Über die Methoden und Eigenschaften dieses Objekts können Sie die erforderlichen Informationen abrufen. Gängige Eigenschaften sind
ResponseText
, ResponseJSON
(wenn die Antwort im JSON-Format vorliegt) , Success
(zur Angabe, ob der Aufruf erfolgreich war oder fehlgeschlagen ist) und HTTPStatus
(HTTP-Status der Antwort).
Parameter
Bevor Sie Ihre Anforderung senden, können Sie nach Bedarf Parameter hinzufügen.
Pfadparameter
Pfadparameter (/path/value1/value2
) werden - wie bereits erläutert - während der Erstellung des WorklightResourceRequest
-Objekts festgelegt:
Uri adapterPath = new Uri("/adapters/JavaAdapter/users/value1/value2",UriKind.Relative);
WorklightResourceRequest request = WorklightClient.CreateInstance.ResourceRequest(adapterPath,"GET");
Abfrageparameter
Wenn Sie Abfrageparameter (/path?param1=value1...
) senden möchten, verwenden Sie für die einzelnen Parameter die Methode SetQueryParameter
:
request.SetQueryParameter("param1","value1");
request.SetQueryParameter("param2","value2");
JavaScript-Adapter
JavaScript-Adapter verwenden sortierte unbenannte Parameter. Wenn Sie Parameter an einen JavaScript-Adapter übergeben möchten, definieren Sie ein Parameter-Array mit dem Namen params
:
request.SetQueryParameter("params","['value1', 'value2']");
Dieses Array sollte mit GET
verwendet werden.
Formularparameter
Wenn Sie im Hauptteil Formularparameter senden möchten, verwenden Sie .Send(Dictionary<string, string> formParameters)
anstelle von .Send()
:
Dictionary<string,string> formParams = new Dictionary<string,string>();
formParams.Add("height", height.getText().toString());
request.Send(formParams);
JavaScript-Adapter
JavaScript-Adapter verwenden sortierte unbenannte Parameter. Wenn Sie Parameter an einen JavaScript-Adapter übergeben möchten, definieren Sie ein Parameter-Array mit dem Namen params
:
formParams.Add("params","['value1', 'value2']");
Dieses Array sollte mit POST
verwendet werden.
Headerparameter
Wenn Sie einen Parameter als HTTP-Header senden möchten, verwenden Sie die API .SetHeader()
:
System.Net.WebHeaderCollection headerCollection = new WebHeaderCollection();
headerCollection["key"] = value;
request.AddHeader(headerCollection);
Weitere angepasste Hauptteilparameter
- Mit
.Send(requestBody)
können Sie im Hauptteil eine beliebige Zeichenfolge festlegen. - Mit
.Send(JObject json)
können Sie im Hauptteil ein beliebiges Verzeichnis festlegen. - Mit
.Send(byte[] data)
können Sie im Hauptteil ein beliebiges Byte-Array festlegen.
Antwort
Das WorklightResponse
-Objekt enthält die Antwortdaten. Über die Methoden und Eigenschaften dieses Objekts können Sie die erforderlichen Informationen abrufen. Gängige Eigenschaften sind
ResponseText
(String), ResponseJSON
(JSONObject) (wenn die Antwort im JSON-Format vorliegt)
und success
(Boolean) (für den Erfolgsstatus der Antwort).
Falls eine Anforderung fehlschlägt, enthält das Antwortobjekt auch eine Eigenschaft error
.
Weitere Informationen
Weitere Informationen zu WLResourceRequest finden Sie in der Benutzerdokumentation.
Beispielanwendung
Das Projekt ResourceRequestXamarin enthält eine native Android- und iOS-Anwendung, die mit einem Java-Adapter eine Ressourcenanforderung absetzt.
Das Adapter-Maven-Projekt enthält den beim Aufrufen der Ressourcenanforderung verwendeten Java-Adapter.
Klicken Sie hier, um das Xamarin-Projekt herunterzuladen.
Klicken Sie hier, um das Adapter-Maven-Projekt herunterzuladen.
Verwendung des Beispiels
Anweisungen finden Sie in der Datei README.md zum Beispiel.
▲Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.