1

オブジェクトをシリアル化し、Web 経由で送信しようとしています。オブジェクトをシリアライズしてすぐにデシリアライズできます。ただし、サーバー側でこれを使用して HTTP 経由でバイトを送信しようとすると:

byte[] b = ObjectToByteArray(anObject);
SimpleWorkerRequest.SendResponseFromMemory(b, b.Length);

そしてクライアント側で使用します:

WebClient client = new WebClient();
byte[] result = client.DownloadData(url);

結果のバイトは、送信されたバイト b と一致しません。使用するエンコーディングを変更しようとしましたが、バイトが変更されるだけで、一致することはありません。WebClient に encoding フィールドがあることは確認しましたが、それは DownloadString のみです。client.DownloadData にはどのようなエンコーディングが使用されていますか? バイトが変わらないようにするにはどうすればよいですか? テキストを送信できるSimpleWorkerRequestの代替手段があれば、それも素晴らしいでしょう..

編集: ASP.NET プロジェクトを作成して使用する場合

Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition",
                                 "attachment; filename=whatever.bin");

できます!SimpleWorkerRequest に戻って追加しようとしました:

swr.SendKnownResponseHeader(System.Web.HttpWorkerRequest.HeaderContentType, "application/octet-stream");

しかし、他の部分についてはよくわかりません..ページを参照すると、ダウンロードではなくテキストとして表示されます

4

0 に答える 0