問題タブ [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.

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

scala - スプレー JSON - JSON 応答の一部のみを解析します

サンプル オブジェクトが含まれているサーバーからの次の Json 応答があります。

この結果の一部だけが必要です。

次のプロパティが必要です。

そこで、次のケース クラスとその暗黙的なパーサーを作成しました。

しかし、私は次のエラーが発生しています:

助けていただけますか?

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

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 に設定しました。実行速度はかなり遅くなりましたが、同じエラーが発生しました。

ここにコード:

データ全体は必要なく、いくつかの集計だけが必要なので、このようにします。

これを解決して完全に非同期に保つにはどうすればよいですか?

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

scala - ケース クラス メッセージを使用して akka アクターから POST メッセージを送信すると失敗する

アクターからスプレー クライアントを使用して Web 要求を作成したいのですが、この Web 要求には、受信メッセージの一部である必要があるパラメーターが必要です。これを行うために、次のようなケース クラスを作成しました。

アクターは次のようになります。

私の問題は、メッセージが文字列の場合はいつでも、例えば:

サービスコールが実行されます。しかし、メッセージをパラメーター化できるようにするためにケース クラスを使用すると、Web 呼び出しはタイムアウトになりますが (wireshark で確認しました)、サーバーへの接続さえ確立されません。

メッセージを呼び出すコード:

メッセージがケース クラスの場合、私は別のコンテキストにいますか?

助けてくれてありがとう

よろしくアキラ

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

scala - max-redirects > 1 の場合、ロケーション ヘッダーが失われる

私は次の設定をしています:

および次の構成: spray.can.host-connector.max-redirects = 2. この URL がリダイレクトされることはわかっていますが、応答ヘッダーを調べると、リダイレクト先を示す Location ヘッダーが表示されません。

構成を Location ヘッダーに変更すると、spray.can.host-connector.max-redirects = 1そこにあり、正しいです。ただし、将来誰かが同じアプリでより多くの erdirect が必要であると判断した場合に壊れないようにしたいと思います。スプレーの設定について見逃していることはありますか?

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

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 形式にする必要があります。

お時間を割いていただき、誠にありがとうございました。また、言葉遣いの悪さをお詫び申し上げます。

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

scala - スプレー テスト gzip デコード

スプレーのテストを書いてみます

私はフォロールーターを持っています

レスポンスにはGZIP圧縮を使用していますが、

アサーションのタイプ「java.lang.String」への応答を非整列化できませんでしたresponseAs: MalformedContent(unknown token Near: ,Some(org.json4s.ParserUtil$ParseException: unknown token Near: ))

autodecode GZIP HttpResponse を文字列に設定するには?

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

akka - アクター内でスプレー クライアント (sendReceive) を使用する

ユースケースは次のとおりです。

  1. アクターはスプレー IO にバインドされ、指定されたポートを介して着信するすべてのインバウンド HTTP 要求を受信して​​処理します。
  2. インバウンド リクエストごとに、アクターはアウトバウンド非同期 http リクエストを別の外部エンドポイントに送信し、インバウンド レスポンスを取得して、発信元にレスポンスを返す必要があります。

スプレーのクライアント sendReceive を使用すると、未来が返されます。これは、アクターが送信したばかりのアウトバウンド要求の応答を待たずに、メールボックスで次のインバウンド メッセージを処理し続けることを意味します。同時に、アウトバウンド要求の応答が到着し、Future コールバックで実行される可能性があります。アクターのメールボックスのキューに入れられていない場合、アクターが特定の時間内に 1 つのスレッドのみによって実行されるという考えを破り、並行して実行される可能性があります。

アクター スレッドのカプセル化を壊さずにこのユース ケースを処理するにはどうすればよいでしょうか。

0 投票する
3 に答える
2454 参照

ssl - スプレーhttpsクライアントでSSLContextを定義するには?

特定の CA 証明書を使用して、セキュリティで保護されたサーバーに http 要求を投稿したいと考えています。

私はSpray 1.3.1を使用しています。コードは次のようになります。

問題は、定義された暗黙の SSLContext が取得されず、実行時に「要求されたターゲットへの有効な証明書パスが見つかりません」というメッセージが表示されることです。

スプレー クライアントで使用する SSLContext を定義するにはどうすればよいですか?

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

xml - スプレーでケースクラスのリストを非整列化する方法

初めてのスプレーユーザーは、これに関する適切な例をどこにも見つけることができません。を含む XML API 応答を非整列化しようとしていますList[Person]

と言うcase class Person(name: String, age: Int)。アンマーシャラーは、適切な を生成する必要がありますList[Person]

スプレーにはデフォルトNodeSeqUnmarshallerがありますが、物事を適切に連鎖させる方法がわかりません。ポインタに感謝します。