Die uni.request
API in UNI-App ist ein vielseitiges Tool zum Erstellen von HTTP-Anforderungen an verschiedene Server. Es ist ein Wrapper um das native XMLHTTPrequest-Objekt, der einen bequemeren und plattformanternen Ansatz bietet. Hier ist eine detaillierte Aufschlüsselung, wie man es benutzt:
Grundnutzung:
Die Kernfunktion ist uni.request()
, das ein Optionsobjekt als Argument nimmt. Dieses Objekt gibt die Anforderungsdetails an. Eine einfache Get -Anfrage könnte so aussehen:
<code class="javascript">uni.request({ url: 'https://api.example.com/data', method: 'GET', success: (res) => { console.log('Request successful:', res.data); }, fail: (err) => { console.error('Request failed:', err); }, complete: (res) => { console.log('Request completed:', res); } });</code>
Dieser Code sendet eine GET -Anfrage an https://api.example.com/data
. Der success
Callback behandelt erfolgreiche Antworten, fail
behandelt Fehler und complete
Ausführungen unabhängig von Erfolg oder Misserfolg. res.data
enthält die Antwortdaten.
Erweiterte Optionen:
uni.request
unterstützt verschiedene Optionen zum Anpassen Ihrer Anfragen:
method
: Gibt die HTTP -Methode an (GET, POST, PUT, LEGETE usw.). Standardeinstellung zu bekommen.data
: Die Daten, die mit der Anfrage gesendet werden sollen (normalerweise für Post, Put usw.). Dies kann ein Objekt oder eine Zeichenfolge sein.header
: Ein Objekt, das HTTP-Header enthält (z. B. Content-Type
, Authorization
).dataType
: Gibt den erwarteten Datentyp der Antwort an ('JSON' ist häufig).responseType
: Gibt den erwarteten Antworttyp an ('Text', 'ArrayBuffer' usw.).timeout
: Legt eine Auszeit für die Anfrage in Millisekunden fest.Beispiel Post Anfrage:
<code class="javascript">uni.request({ url: 'https://api.example.com/submit', method: 'POST', header: { 'Content-Type': 'application/json' }, data: { name: 'John Doe', email: 'john.doe@example.com' }, success: (res) => { // ... }, fail: (err) => { // ... } });</code>
Eine robuste Fehlerbehandlung ist für eine reibungslose Benutzererfahrung von entscheidender Bedeutung. Hier sind gemeinsame Techniken zum Umgang mit Fehlern mit uni.request
:
fail
: Der Rückruf fail
ist der Hauptmechanismus. Es empfängt ein Fehlerobjekt mit Informationen zum Fehler (z. B. Statuscode, Fehlermeldung). Verwenden Sie dies, um dem Benutzer informative Fehlermeldungen bereitzustellen oder den Fehler für das Debuggen zu protokollieren.fail
(oder sogar in complete
um umfassendere Handhabung). Unterschiedliche Statuscodes geben unterschiedliche Probleme an (404 nicht gefunden, 500 interner Serverfehler usw.). Behandeln Sie diese Fälle unterschiedlich und geben Sie ein maßgeschneidertes Feedback der Benutzer.uni.request
könnte aufgrund mangelnder Internetverbindung scheitern. Sie können uni.getSystemInfoSync().networkType
verwenden, um den Netzwerkstatus zu überprüfen, bevor Sie die Anforderung oder die Verarbeitung von Netzwerkfehlern speziell innerhalb des Rückrufs fail
erstellen oder verarbeiten.uni.request
seltener sind, die bereits Rückrufe liefert, können Sie den uni.request
-Anruf in einen try...catch
Block, um unerwartete Fehler zu fangen, die außerhalb der Anfrage selbst auftreten können (z. B. JSON -Parsingfehler).Beispiel mit Statuscodeprüfung:
<code class="javascript">uni.request({ // ... request options ... fail: (err) => { if (err.statusCode === 404) { uni.showToast({ title: 'Resource not found', icon: 'error' }); } else if (err.statusCode === 500) { uni.showToast({ title: 'Server error', icon: 'error' }); } else { uni.showToast({ title: 'An error occurred', icon: 'error' }); console.error('Request failed:', err); } } });</code>
Durch die Integration uni.request
in ein Authentifizierungssystem wird in der Regel eine Autorisierungsheader zu jeder Anfrage hinzugefügt. Dieser Header enthält normalerweise ein Token (JWT, Sitzungs -ID usw.), das den authentifizierten Benutzer identifiziert.
Durchführung:
uni.setStorageSync
und uni.getStorageSync
).header
-Objekt hinzu:<code class="javascript">const token = uni.getStorageSync('token'); uni.request({ url: 'https://api.example.com/protected-data', header: { 'Authorization': `Bearer ${token}` // Adjust as needed for your auth scheme }, success: (res) => { // ... }, fail: (err) => { // Handle authentication errors (eg, 401 Unauthorized) if (err.statusCode === 401) { // Redirect to login or refresh token } } });</code>
Ja, uni.request
kann Dateien hochladen, erfordert jedoch die Verwendung der formData
-API. So wie: wie:
Durchführung:
FormData
-Objekt und fügen Sie die Datei an. Sie müssen mit der entsprechenden UNI-App-Dateiauswahl-API (z. B. uni.chooseImage
oder uni.chooseVideo
) auf die Datei zugreifen.Content-Type
auf multipart/form-data
.FormData
-Objekt als data
.Beispiel:
<code class="javascript">uni.chooseImage({ count: 1, success: (res) => { const filePath = res.tempFiles[0].path; const formData = new FormData(); formData.append('file', { uri: filePath, name: 'file.jpg', // Adjust filename as needed type: 'image/jpeg' // Adjust file type as needed }); uni.request({ url: 'https://api.example.com/upload', method: 'POST', header: { 'Content-Type': 'multipart/form-data' }, data: formData, success: (res) => { // ... }, fail: (err) => { // ... } }); } });</code>
Denken Sie daran, den name
und die type
Ihrer hochgeladenen Datei einzustellen. Die serverseitige Seite muss so konfiguriert werden, dass multipart/form-data
-Uploads verarbeitet werden. Erwägen Sie außerdem, einen Fortschrittsindikator zu verwenden, um den Benutzer den Fortschritt des Uploads für eine bessere Benutzererfahrung anzuzeigen, was normalerweise einen anderen Ansatz erfordert, der über die grundlegende uni.request
hinausgeht.
Das obige ist der detaillierte Inhalt vonWie benutze ich die UNI.Request-API von Uni-App für HTTP-Anfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!