問題タブ [spray-client]
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.
scala - スプレー JSON - JSON 応答の一部のみを解析します
サンプル オブジェクトが含まれているサーバーからの次の Json 応答があります。
この結果の一部だけが必要です。
次のプロパティが必要です。
そこで、次のケース クラスとその暗黙的なパーサーを作成しました。
しかし、私は次のエラーが発生しています:
助けていただけますか?
scala - 複数のリクエストにスプレー クライアントを使用する場合の akka タイムアウト
akka 2.3.6でspray 1.3.2を使用。(akka はスプレーのみに使用されます)。
巨大なファイルを読み取り、各行に対して http リクエストを作成する必要があります。
イテレータを使用してファイルを1行ずつ読み取り、アイテムごとにリクエストを行います。一部の行では正常に実行されますが、ある時点で失敗し始めます:
akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://default/user/IO-HTTP#-35162984]] after [60000 ms]
.
最初はサービスをオーバーロードしていると思ったので、「spray.can.host-connector.max-connections」を 1 に設定しました。実行速度はかなり遅くなりましたが、同じエラーが発生しました。
ここにコード:
データ全体は必要なく、いくつかの集計だけが必要なので、このようにします。
これを解決して完全に非同期に保つにはどうすればよいですか?
scala - ケース クラス メッセージを使用して akka アクターから POST メッセージを送信すると失敗する
アクターからスプレー クライアントを使用して Web 要求を作成したいのですが、この Web 要求には、受信メッセージの一部である必要があるパラメーターが必要です。これを行うために、次のようなケース クラスを作成しました。
アクターは次のようになります。
私の問題は、メッセージが文字列の場合はいつでも、例えば:
サービスコールが実行されます。しかし、メッセージをパラメーター化できるようにするためにケース クラスを使用すると、Web 呼び出しはタイムアウトになりますが (wireshark で確認しました)、サーバーへの接続さえ確立されません。
メッセージを呼び出すコード:
メッセージがケース クラスの場合、私は別のコンテキストにいますか?
助けてくれてありがとう
よろしくアキラ
scala - max-redirects > 1 の場合、ロケーション ヘッダーが失われる
私は次の設定をしています:
および次の構成: spray.can.host-connector.max-redirects = 2
. この URL がリダイレクトされることはわかっていますが、応答ヘッダーを調べると、リダイレクト先を示す Location ヘッダーが表示されません。
構成を Location ヘッダーに変更すると、spray.can.host-connector.max-redirects = 1
そこにあり、正しいです。ただし、将来誰かが同じアプリでより多くの erdirect が必要であると判断した場合に壊れないようにしたいと思います。スプレーの設定について見逃していることはありますか?
scala - Spray.client を使用した http POST からのエラー onFailure のアンマーシャリング
私はその点でspray.ioとscalaに非常に慣れていないので、アンマーシャリングに関してここで用語を理解していなかった場合は、事前に謝罪します.
パイプラインを使用して HTTP POST 応答を取得しようとしています。承認ヘッダーが必要なため、失敗することが予想されますが、今は無視しましょう。
Chrome 拡張 Postman を使用して URL に POST すると、プレーンでシンプルな json の次の応答が得られます。
そこで、この応答用に独自のケース クラスを作成することから始め、独自の JsonProtocol を実装して、応答をアンマーシャリングしました。
これで、パイプラインを実行して応答を受け取る準備が整いました。
リクエストが完了し、onFailure ケースが実行されますが、前の Postman の例のように、error.getMessage はもはや json ではありません。
だから私の質問は、返されたエラーをアンマーシャリングする方法と、それが Body である CreateFromTemplateResult ケースになりますか? または、単純に json にすることもできます。私の onSuccess ケースも機能するかどうかはわかりません。両方に同じ動作が必要です。定義した CreateFromTemplateResult 形式にする必要があります。
お時間を割いていただき、誠にありがとうございました。また、言葉遣いの悪さをお詫び申し上げます。
scala - スプレー テスト gzip デコード
スプレーのテストを書いてみます
私はフォロールーターを持っています
レスポンスにはGZIP圧縮を使用していますが、
アサーションのタイプ「java.lang.String」への応答を非整列化できませんでした
responseAs
: MalformedContent(unknown token Near: ,Some(org.json4s.ParserUtil$ParseException: unknown token Near: ))
autodecode GZIP HttpResponse を文字列に設定するには?
akka - アクター内でスプレー クライアント (sendReceive) を使用する
ユースケースは次のとおりです。
- アクターはスプレー IO にバインドされ、指定されたポートを介して着信するすべてのインバウンド HTTP 要求を受信して処理します。
- インバウンド リクエストごとに、アクターはアウトバウンド非同期 http リクエストを別の外部エンドポイントに送信し、インバウンド レスポンスを取得して、発信元にレスポンスを返す必要があります。
スプレーのクライアント sendReceive を使用すると、未来が返されます。これは、アクターが送信したばかりのアウトバウンド要求の応答を待たずに、メールボックスで次のインバウンド メッセージを処理し続けることを意味します。同時に、アウトバウンド要求の応答が到着し、Future コールバックで実行される可能性があります。アクターのメールボックスのキューに入れられていない場合、アクターが特定の時間内に 1 つのスレッドのみによって実行されるという考えを破り、並行して実行される可能性があります。
アクター スレッドのカプセル化を壊さずにこのユース ケースを処理するにはどうすればよいでしょうか。
ssl - スプレーhttpsクライアントでSSLContextを定義するには?
特定の CA 証明書を使用して、セキュリティで保護されたサーバーに http 要求を投稿したいと考えています。
私はSpray 1.3.1を使用しています。コードは次のようになります。
問題は、定義された暗黙の SSLContext が取得されず、実行時に「要求されたターゲットへの有効な証明書パスが見つかりません」というメッセージが表示されることです。
スプレー クライアントで使用する SSLContext を定義するにはどうすればよいですか?
xml - スプレーでケースクラスのリストを非整列化する方法
初めてのスプレーユーザーは、これに関する適切な例をどこにも見つけることができません。を含む XML API 応答を非整列化しようとしていますList[Person]
。
と言うcase class Person(name: String, age: Int)
。アンマーシャラーは、適切な を生成する必要がありますList[Person]
。
スプレーにはデフォルトNodeSeqUnmarshaller
がありますが、物事を適切に連鎖させる方法がわかりません。ポインタに感謝します。