問題タブ [moya]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1830 参照

swift - Swiftジェネリック:「ジェネリックパラメータTを推測できませんでした」

Moya と Object Mapper に基づいて、一般的なリクエスト ハンドラー クラスを作成しようとしています。基本的に、Moya ターゲットへのリクエストを実行し、成功と失敗の両方のケースでいくつかの基本的な処理を実行するメソッドが必要です。

私のクラスは、この答えに基づいて次のようになります:

私の質問は、クラス レベルではなく関数レベルでジェネリックを使用して同じ結果を得ることができるかどうかです。

私はそれを試してみましたが、コードでビルドエラーが発生しました:

Generic parameter "T" could not be inferred

0 投票する
1 に答える
1839 参照

swift - RxSwift で発生する 2 つのイベント

こんにちは、私はいくつかの RxSwift を学んでいます。makeLoginRequest が 2 回呼び出される理由がわかりません...ログインが正しいときに他のコントローラーにプッシュしますが、オブザーバブルは他のイベントを通知するため、次のコントローラーを 2 回プッシュします。 .

viewModel のコードは次のとおりです。

そしてコントローラーで

誰が何が起こっているのか説明できますか?

ありがとう!

0 投票する
0 に答える
383 参照

ios - iOS: HTTPS GET: アプリがロック画面から戻った後、サーバーからの空の応答

問題: ロック画面からアプリに戻ってから 1 ~ 2 秒以内にHTTPS GET を送信すると、空の応答が返されます。

再現する手順

  1. アプリを起動します。画面上の TableView にニュースフィードが表示されます。
  2. iPhoneをロックします。
  3. iPhoneのロックを解除
  4. 1 ~ 2 秒以内に TableView で pull-to-refresh を実行し、HTTPS GET リクエストを YouTube に送信して、特定のチャンネルから動画のリストを取得します。

期待される結果: YouTube から動画のリストを含む応答を受け取ります。

実際の結果: Moya から「空の応答」ログが返されました。

注:次の同じプルでリフレッシュが機能します。2 秒待ってからプルして更新すると、完全に機能します。変!

コンテキスト: iOS Swift モヤ

誰が理由を知っていますか?どんな手掛かり?私の頭脳を壊した。

UPD コードへのリンク: https://yadi.sk/d/Feu0FZkdu9ogr 試してみてください。

0 投票する
2 に答える
1785 参照

swift - App Transport Security をバイパスして、セキュリティで保護されていない HTTP サーバーを許可する

状況:

開発用とステージング用に、これら 2 つの異なるサーバーに接続する必要があります。どちらのサーバーにも、信頼されていない SSL 証明書があります。例として、これら 2 つのサーバーの URL は次のとおりです。

ステージング サーバー:https://52.70.13.2:1010/

開発サーバー:https://example.entrydns.org:1012

API を呼び出そうとすると、次のエラーで空の応答が返されます。

または時々、

私はネットワークレイヤーにMoyaを使用しています。これは基本的にAlamofireの素敵なラッパーです。追加情報については、私が使用XCode 7.3し、アプリは のみをサポートしています> iOS 9

私がしたこと:

私は、Apple が強制しようとしている App Transport Security の問題を十分に認識しています。開発のために無効にしたかったのですが、それでも無駄です。ATS をバイパスしようとしたいくつかの方法は次のとおりです。

  1. my に以下を追加してplist、任意のロードを許可します。

    /li>
  2. ドメインの例外を明示的に定義します。

    /li>

これが私のスクリーンショットですplistここに画像の説明を入力

  1. また、Alamofire マネージャー共有インスタンスのサーバー信頼ポリシーを無効にしようとしました。コード例は次のとおりです。

    /li>
  2. URL を開いて、デバイスとシミュレーターに証明書をダウンロードします。

上記のすべての手順を実行しても、同じエラーが発生します。私が間違っていたことと、この問題を解決するために何ができるかを教えてください。ところで、サーバー側のソリューションを回避できれば素晴らしいことです。

前もって感謝します。

参考文献:

0 投票する
1 に答える
969 参照

swift - Moya + Alamofire はすべてのリクエストを検証します

私はMoya+を使用しており、すべてのリクエスト ( など)Alamofireを検証しようとしていますが、 .Alamofire.request(.GET, "https://httpbin.org/get").validate()Moya

しかし、これを行う方法が見つかりません。

0 投票する
1 に答える
1159 参照

swift - Cocoapod にリンクされた静的フレームワークがメイン プロジェクトに見つかりません

Carthage を介してプライベート Cocoapod プロジェクトに静的フレームワーク (Moya) を追加しようとしています。

私の目標は、Moya をプライベート Cocoapod (SwiftModel) に静的フレームワークとして含め、メイン プロジェクトでも Moya を使用することです (SwiftModel は Moya に依存しているため)。

次の手順を実行して、Moya をフレームワークに追加しました。

  1. podspec ファイル内のリンク フレームワーク

    s.vendored_frameworks = 'SwiftModel/Carthage/Build/iOS/Moya.framework'

  2. プライベート フレームワークに Moya を追加 (ライブラリとバイナリをリンク)

ここに画像の説明を入力

したがって、Pods プロジェクト内では次のようになります。

ここに画像の説明を入力

「Framework Header Search Path」にパスを追加しようとしても、何も変更されませんでした。メインプロジェクトとポッドプロジェクトに追加しようとしました。

プライベートポッドを構築するだけで、すべてが正常に機能し、Moya が認識されます。ただし、メイン プロジェクト (プライベート ポッドを含む) をビルドする場合、常に次のエラーが発生します。

フレームワークが見つかりません アーキテクチャ arm64 の Moya

ここに画像の説明を入力

0 投票する
1 に答える
8273 参照

ios - Moya + RxSwift によるカスタム エラー応答処理

iOS アプリのネットワーキングに RxSwift で Moya を使用していObserverますonError

API は常に次の JSON 形式でエラー応答を返します。

目標は、次のコード スニペットのようなものを達成することです。ここで、渡されるエラーonErrorは、型ではなくカスタム エラー型Moya.Errorです。

カスタムを使用してこれらのエラーを正常にインターセプトし、カスタム エラー モデルに逆シリアル化することができます(この SO の質問PluginTypeから以下に貼り付けます) が、これらのモデルを最終的に.Observer

0 投票する
1 に答える
1344 参照

swift - Rxswift + Moya + Moya-ObjectMapper エラー処理

Rxswift でMoyaMoya-ObjectMapperを使用して、ネットワーク リクエストを作成しています。

私のネットワークリクエストは以下です。

エラーが発生した場合、病院への依頼Observableは終了し、二度と病院への依頼を行うことはできません。

requestHospitalButtonがタップされたときに病院のリクエストを再試行するにはどうすればよいですか?