問題タブ [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 投票する
2 に答える
5459 参照

unit-testing - スプレークライアントの応答をモックする方法

私は単純なスプレークライアントを持っています:

完全なコードはここにあります。

Successサーバーの応答をモックして、 andFailureケースのロジックをテストしたいと考えています。私が見つけた唯一の関連情報はここにありましたが、ケーキパターンを使用して sendReceive メソッドをモックすることはできませんでした。

任意の提案や例をいただければ幸いです。

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

scala - スプレー クライアント ポスト マルチパート

スプレーを使用してサーバーにマルチパート フォームを投稿したいと考えています。特に画像を投稿したいです。

私が問題を抱えているのは、マルチパートへのファイルのマーシャリングです。スプレーでは、デフォルトのマーシャラーであると言及されていますが、2つを結び付けることができないようです.

私は現在、Scala 2.10 に移行していないため、Spray 1.0-M7 を使用しています。例がそのブランチに準拠していれば、それは素晴らしいことです。

私が現在持っているのはこれです:

もちろん、次のようなエラーが表示されます。

私が見つけたほとんどの例では、マーシャリングに content(as[X]) ディレクティブを使用していますが、私はスプレー ルーティングを使用していません。別のフレームワークで構築されたアプリケーションでスプレー クライアントを使用して投稿を実行する必要があるだけです。

ありがとう

編集

私は実際に次のようにマーシャリングすることができました:

残念ながら、これはまだ機能していません。データは転送されていますが、サーバーはファイルを見つけることができません。

Wireshark のキャプチャにより、次のことが明らかになります。

これは、Advanced Rest Client で作成された有効なリクエストのキャプチャです。

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

scala - 特定のパイプライン要求にタイムアウトと再試行回数を設定できますか?

スプレーのパイプラインを使用して、次のような HTTP リクエストを作成する場合:

リクエストのタイムアウトと、その特定のリクエストに対して再試行する回数を指定する方法はありますか?

私が見つけたすべてのドキュメントは、構成で行っていることのみを参照しています(それでも、動作させることができないようです)。

どうも

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

scala - Http ヘッダーを使用して、spray-client で応答を非整列化する

spray-clientREST サービスにアクセスするために使用しています。サーバーから返されたデータの一部は、http 応答ヘッダーにあります (残りは応答本文にあります)。

応答をアンマーシャリングできるようにするために、Unmarshaller. ただし、アンマーシャラーは (のインスタンスとして) 応答本文にしかアクセスできず、HttpEntityこの段階ではすべてのヘッダーにアクセスできないようです。

現在のパイプラインとアンマーシャラー コードは次のとおりです。

アンマーシャリング時にそれらにアクセスする方法はありますか? 回避策はありますか?

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

scala - Scala で Spray Client を使用して中サイズのファイルのダウンロードの進行状況を追跡する方法

スプレーを使用して、Scala アプリからビデオなどの中サイズのファイルをダウンロードしようとしています。
私が必要とするのは、ファイルをダウンロードし、受け取ったすべてのチャック (おそらくチャックの寸法は構成で設定したもの) に対して、プロセス全体の進行状況を追跡することです (プログレスバーのようなものです)。
さらに、ファイルを保存する前にファイル全体をメモリに保存することを避け、代わりに各チャックを受信して​​ログに記録することを避けたいと思います。

ドキュメントとオンラインで少し調べました。
しかし、私はこれを行う明確な方法を見つけることができないようです。
私が見つけた唯一のことは、このユースケースが当時のスプレークライアントでサポートされていなかったため、スプレー缶を直接使用する必要があることを示すこのリンクでした...例はありませんが、まだ少し混乱しています。

誰でもアプローチを提案できますか? 私を正しい方向に向けますか?たとえば 30MB のファイルをどのようにダウンロードしますか?

ありがとう

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

scala - チャンク レスポンスを使用したスプレーおよびカスタム アクターでの切断と再接続の処理

私はSprayを初めて使用し、サーバーからデータのストリームを受信するクライアントを実装しようとしています. 私の現在のコードは次のようになります。クライアントは HTTP サーバーにリクエストを送信し、HTTP サーバーはデータのストリーム (チャンクされたレスポンスとして) を返します。サーバーに接続し、レスポンスを取得できることを確認しました。

ただし、切断と再接続をどのように処理する必要があるかは明確ではありません。たとえば、(A) ネットワーク接続が失われた場合、または (B) その時点でサーバーに送信するデータがないためにクライアントがタイムアウトした場合などです。ポインタ/例をいただければ幸いです。

アップデート

まず、上記の (A) と (B) のイベントを検出します。クライアントが上記の (A) または (B) のいずれかを経験した場合、接続を再確立し、再認証して続行できるようにする必要があります (connected状態に戻ってデータ ストリームを取得します。

これらは私の内容ですresources/application.conf

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

node.js - 非常に大きな node.js レスポンスの最適化

node.js から Akka Spray.io ベースのアクターへの大きな (10 MB) ペイロードで応答しており、spray/akka からチャンク サイズ エラーが発生しています[akka://spray-actor-system/user/IO-HTTP/group-0/3] Received illegal response: HTTP chunk size exceeds the configured limit of 1048576 bytes

私の node.js コードは、単純に 1 つのres.endコマンドで応答を送信します。(これは、応答がストリーミングされない方法で生成されるため、少なくともspray.ioクライアント側が追加されるまで、それをさらにストリーミングすることによる「固有の」利益がなかったためです)。

スプレー.ioのサイズ制限を増やして非常に大きなhttp応答を処理したくない場合に備えて、node.js APIを使用して応答をチャンクする最も簡単な方法は何だろうと思っています。また、node.js からこのサイズの応答を送信する際にパフォーマンスの低下があるかどうか - つまり、node.js は res.end 操作でブロックされますか?