オープンソースの詳細については、以下をご覧ください。 51CTO オープンソース基本ソフトウェアコミュニティ https://ost..com 序文最近、オンライン授業で AI 詩作インターフェースを見ました。以前のフェッチインターフェースはメンテナンスされなくなったので、この機会に Hongmeng の http インターフェースを試してみました。次に、HTTP リクエストに関する基本的な知識を確認し、Hongmeng の HTTP リクエストを練習するために、簡単な AI 詩作デモを実装します。 デモ http インターフェース常識補足コンテンツタイプコンテンツ タイプの目的は、返されるコンテンツのコンテンツ タイプをクライアントに伝えることです。さまざまなコンテンツ タイプの形式は次のとおりです。 コンテンツタイプ | 対応するフォーマット | テキスト/HTML | HTML形式 | テキスト/プレーン | プレーンテキスト形式 | テキスト/xml | XML形式 | 画像/gif | gif画像形式 | 画像/jpeg | Jpg画像フォーマット | 画像/png | png画像形式 | アプリケーション/xhtml+xml | テキスト | アプリケーション/xml | XML データ形式 | アプリケーション/atom+xml | Atom XML シンジケーション形式 | アプリケーション/json | JSONデータ形式 | アプリケーション/pdf | PDF形式 | アプリケーション/msword | Word文書形式 | アプリケーション/オクテットストリーム | バイナリ ストリーム データ (一般的なファイルのダウンロードなど) | アプリケーション/x-www-form-urlencoded | フォームデータはキー/値形式でエンコードされ、サーバーに送信されます(フォームでデータを送信するためのデフォルトの形式) | マルチパート/フォームデータ | この形式は、フォームにファイルをアップロードする必要がある場合に必要です。 |
応答ステータス コード (ResponseCode)各インターフェース要求に対して、サーバーは応答ステータス コードを返します。各ステータス コードには異なる意味があります。 名前 | 価値 | 説明する | わかりました | 200 | リクエストは成功しました。通常、GET および POST リクエストに使用されます。 | 作成 | 201 | 作成されました。新しいリソースが正常に要求され、作成されました。 | 承認済み | 202 | 承認されました。リクエストは受け入れられましたが、完了まで処理されていません。 | 権限がない | 203 | 許可されていない情報。リクエストは成功しました。 | コンテンツなし | 204 | コンテンツがありません。サーバーは正常に処理しましたが、コンテンツを返しませんでした。 | リセット | 205 | コンテンツをリセットします。 | 部分的 | 206 | 部分的なコンテンツ。サーバーはいくつかの GET リクエストを正常に処理しました。 | 複数選択 | 300 | 複数のオプション。 | 移動済み_PERM | 301 | 永久に移動します。要求されたリソースは新しい URI に恒久的に移動されました。返される情報には新しい URI が含まれ、ブラウザは自動的に新しい URI にリダイレクトされます。 | 移動済み_一時 | 302 | 一時的な移動。 | その他を見る | 303 | 他のアドレスを表示します。 | 変更されていません | 304 | 変更されていません。 | プロキシの使用 | 305 | プロキシを使用してください。 | 要求の形式が正しくありません | 400 | クライアントの要求は構文的に間違っていたため、サーバーが理解できませんでした。 | 無許可 | 401 | リクエストにはユーザー認証が必要です。 | 支払いが必要です | 402 | 将来の使用のために予約されています。 | 禁断 | 403 | サーバーはクライアントの要求を理解しましたが、要求の実行を拒否しています。 | 見つかりません | 404 | サーバーはクライアントが要求したリソース (Web ページ) を見つけることができません。 | 不正な方法 | 405 | クライアント要求内のメソッドは禁止されています。 | 受け入れられない | 406 | サーバーは、クライアントの要求のコンテンツ特性に基づいて要求を完了できません。 | プロキシ認証 | 407 | リクエストにはプロキシの認証が必要です。 | クライアントタイムアウト | 408 | リクエストに時間がかかりすぎたため、タイムアウトになりました。 | 対立 | 409 | サーバーは、クライアントの PUT 要求を完了するときにこのコードを返す場合があります。サーバーが要求を処理中に競合が発生しました。 | 消えた | 410 | クライアントが要求したリソースは存在しません。 | 長さは必須です | 411 | サーバーは、Content-Length なしでクライアントから送信された要求情報を処理できません。 | 事前設定失敗 | 412 | クライアントは前提条件エラーのある情報を要求しました。 | エンティティが大きすぎる | 413 | リクエスト エンティティが大きすぎてサーバーが処理できないため、リクエストは拒否されました。 | 要求が長すぎる | 414 | 要求された URI が長すぎるため (URI は通常 URL です)、サーバーはそれを処理できません。 | サポートされていないタイプ | 415 | サーバーは要求された形式を処理できません。 | 内部エラー | 500 | 内部サーバー エラーが発生したため、要求を完了できませんでした。 | 実装されていません | 501 | サーバーは要求された機能をサポートしていないため、要求を完了できません。 | 不正なゲートウェイ | 502 | サーバーはゲートウェイまたはプロキシとして機能しているときに、リモート サーバーから無効な要求を受信しました。 | 利用不可 | 503 | 過負荷またはシステムメンテナンスのため、サーバーは一時的にクライアントのリクエストを処理できません。 | ゲートウェイタイムアウト | 504 | ゲートウェイまたはプロキシとして機能しているサーバーは、リモート サーバーからの要求を適切なタイミングで受信しませんでした。 | バージョン | 505 | サーバーによって要求された HTTP プロトコルのバージョン。 |
コードの実装1. ネットワーク権限を申請するconfig.json ファイルにネットワーク権限を登録します。これにより、プログラムはネットワーク ソケットを開いてネットワーク接続を確立できるようになります。 「必要な権限」 : [ { 「名前」 : 「ohos.permission.INTERNET」 } ] 2. httpモジュールをインポートする '@ohos.net.http' からhttp をインポートします。 3. HttpRequestオブジェクトを作成するcreateHttp() を呼び出して HttpRequest オブジェクトを作成した後、各 httpRequest は http リクエスト タスクに対応しており、再利用できないことに注意してください。つまり、ネットワーク リクエストごとに新しい HttpRequest オブジェクトを作成する必要があります。リクエストが実行されると、オブジェクトは自動的に破棄されます。 httpRequest を http.createHttp() にします。 4. リクエストインターフェースを書く httpRequest . リクエスト( "https://py.myie9.com/cangtoutest/" + this .poemHead 、 { ヘッダー: { 'コンテンツタイプ' : 'text/plain' }, 読み取りタイムアウト: 10000 、 接続タイムアウト: 10000 }, ( エラー, データ) => { もしエラーが起きたら console.info ( "xxx---" + JSON.stringify (データ) ) this.aiResult = data.result ; } それ以外{ console.info ( 'xxx--- エラー: ' + JSON.stringify ( err )) ; } }) ここまでで、単純な http リクエストが完了しました。 後で、リクエストをカプセル化して、メソッド、Content-Type など、変更する必要があるいくつかのパラメータを公開できます。後で時間を見つけて、HTTP リクエストのカプセル化に関するブログを書く予定です。 5. 頭韻詩の完全なコードjsコード: '@ohos.net.http' からhttp をインポートします。 '@system.router' からルーターをインポートします。 httpRequest = http.createHttp () とします。
エクスポートデフォルト{ データ: { 詩の見出し: "123" 、 aiResult : 「上記の要件を満たすフィールドを入力してください」 }, 初期化(){ }, 戻る() { ルーター.back () }, ヘッド詩を隠す() { httpRequest = http.createHttp ( ) ; httpRequest . リクエスト( "https://py.myie9.com/cangtoutest/" + this .poemHead 、 { ヘッダー: { 'コンテンツタイプ' : 'text/plain' }, 読み取りタイムアウト: 10000 、 接続タイムアウト: 10000 }, ( エラー, データ) => { もしエラーが起きたら console.info ( "xxx---" + JSON.stringify (データ) ) this.aiResult = data.result ; } それ以外{ console.info ( 'xxx--- エラー: ' + JSON.stringify ( err )) ; } }) }, チェック1 ( e ){ console.log ( "xxx---" + JSON.stringify ( e.value ) ) this.poemHead = e.value.poemHead this.hideHeadPoem () ; } } CSSコード: 。容器{ ディスプレイ: フレックス; flex-direction : 列; コンテンツの中央揃え ; アイテムの位置合わせ: 中央; 左: 0px ; 上: 0px ; 幅: 100% ; 高さ: 100% ; } 。タイトル{ フォントサイズ: 60px ; テキスト配置: 中央; 幅: 100% ; 高さ: 40% ; マージン: 10px ; } 。画面{ コンテンツの中央揃え ; アイテムの位置合わせ: 中央; 幅: 80% ; 高さ: 35% ; 境界線の半径: 20px ; 背景色: #fff5f1f1 ; 不透明度: 0.8 ; ボックスの影: 10px 10px 5px #888888 ; } .サブボタン{ 幅: 250px ; 左マージン: 25% ; 背景色: #ffa5552f ; 上マージン: 5% ; } .subButton2 { 幅: 250px ; 高さ: 70px ; 左マージン: 25% ; 背景色: #ffa5552f ; 上マージン: 2% ; } HMLコード: < div クラス= "コンテナ" > < フォームクラス= "コンテナ" onsubmit = 'check1' > < input style = "width:80%;height:10%;margin-top: 15%;" type = "text" placeholder = "頭韻詩を生成するための文章を入力してください" name = 'poemHead' > </ input > < div クラス= "display" スタイル= "margin-top: 15%;" > < テキストスタイル= "余白: 40px;フォントサイズ: 38px;" > {{aiResult}} </ テキスト> </div> < input class = "subButton" type = 'submit' >頭韻詩を生成します</ input > < button class = "subButton2" onclick = "back" >戻る</ button > </ フォーム> < image src = "../../common/123.png" style = "z-index: -1; position: fixed; width: 100%; height: 100%;" > </ image > </div> 完全なデモ コードについては添付ファイルを参照してください。 https://ost..com/resource/2180. オープンソースの詳細については、以下をご覧ください。 51CTO オープンソース基本ソフトウェアコミュニティ https://ost..com. |