ホームページ >ウェブフロントエンド >uni-app >HTTPリクエストを作成するためにUni-AppのUni.Request APIを使用するにはどうすればよいですか?
UNI-APPのuni.request
APIは、さまざまなサーバーにHTTP要求を行うための汎用性の高いツールです。これは、ネイティブXMLHTTPREQUESTオブジェクトの周りのラッパーであり、より便利でクロスプラットフォームのアプローチを提供します。使用方法の詳細な内訳は次のとおりです。
基本的な使用法:
コア関数はuni.request()
であり、オプションオブジェクトを引数として取得します。このオブジェクトは、リクエストの詳細を指定します。簡単なGETリクエストは次のようになります:
<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>
このコードは、 https://api.example.com/data
にGETリクエストを送信します。 success
コールバックは、成功した応答を処理し、エラーfail
処理し、成功や失敗に関係なくcomplete
実行を処理します。 res.data
には応答データが含まれています。
高度なオプション:
uni.request
、リクエストをカスタマイズするためのさまざまなオプションをサポートしています。
method
:HTTPメソッド(取得、投稿、配置、削除など)を指定します。デフォルトは取得します。data
:リクエストで送信するデータ(通常は投稿、配置など)。これはオブジェクトまたは文字列にすることができます。header
:HTTPヘッダーを含むオブジェクト(たとえば、 Content-Type
、 Authorization
)。dataType
:応答の予想データ型を指定します(「JSON」は一般的です)。responseType
:予想される応答タイプ(「テキスト」、「ArrayBuffer」など)を指定します。timeout
:リクエストのタイムアウトをミリ秒単位で設定します。投稿の例リクエスト:
<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>
スムーズなユーザーエクスペリエンスには、堅牢なエラー処理が重要です。 uni.request
を使用してエラーを処理するための一般的な手法を次に示します。
fail
コールバック: fail
コールバックが主要なメカニズムです。障害に関する情報を含むエラーオブジェクトを受信します(たとえば、ステータスコード、エラーメッセージ)。これを使用して、ユーザーに有益なエラーメッセージを提供するか、デバッグのエラーをログにします。fail
CallbackのHTTPステータスコードを確認します(または、より包括的な処理のためにcomplete
に)。異なるステータスコードは、異なる問題(404が見つかりません、500内のサーバーエラーなど)を示します。これらのケースを異なる方法で処理し、テーラードユーザーフィードバックを提供します。uni.request
、インターネット接続が不足しているために失敗する可能性があります。 uni.getSystemInfoSync().networkType
を使用して、ネットワークのステータスを確認する前に、リクエストまたはハンドルネットワークエラーをfail
コールバック内で特別に処理できます。uni.request
ではあまり一般的ではありませんが、 uni.request
コールをtry...catch
てみることができます。ステータスコードチェックの例:
<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>
uni.request
認証システムと統合するには、通常、各リクエストに承認ヘッダーを追加することが含まれます。このヘッダーには通常、認証されたユーザーを識別するトークン(JWT、セッションIDなど)が含まれています。
実装:
uni.setStorageSync
およびuni.getStorageSync
を使用してUni-Appのストレージに)。header
オブジェクトに追加します。<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>
はい、 uni.request
ファイルをアップロードできますが、 formData
APIを使用する必要があります。方法は次のとおりです。
実装:
FormData
オブジェクトを作成し、ファイルを追加します。適切なUNI-APPファイル選択API(例えば、 uni.chooseImage
またはuni.chooseVideo
)を使用してファイルにアクセスする必要があります。Content-Type
ヘッダーをmultipart/form-data
に設定します。FormData
オブジェクトをdata
として送信します。例:
<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>
アップロードされたファイルに従って、 name
とtype
プロパティを調整することを忘れないでください。サーバー側はmultipart/form-data
アップロードを処理するように構成する必要があります。また、進行状況インジケーターを使用して、より良いユーザーエクスペリエンスのために進行状況をユーザーにアップロードすることを検討してください。これは通常、Basic uni.request
以外の異なるアプローチが必要です。
以上がHTTPリクエストを作成するためにUni-AppのUni.Request APIを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。