- - PR -
SOAPを使ったWebサービスの開発
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2003-12-04 17:50
いつもお世話になっております。
現在、C#でWebサービスの開発を行っており、 サーバとクライアントの通信にDIMEを使って画像ファイルを添付しています。 そこで質問ですが、 クライアント(Windowsアプリ)からサーバへの画像ファイルの添付は下記のコードで実現できましたが、サーバ側から、クライアント側に画像ファイルを添付する方法が分かりません。 つまり、サーバ側では、下記の【service】が取れないので、 Attachmentの方法が分からないということです。 実現したいことは単純で、クライアント側が、画像取得要求を出したらサーバ側がこれを受けて 画像ファイルを添付したXMLを返すということを実現したいです。 どなたかご存知の方がございましたら、お教えください。 よろしくお願いします。 // // XMLに画像データの添付を行う // service.RequestSoapContext.Attachments.Add(new Microsoft.Web.Services.Dime.DimeAttachment("image/jpeg", Microsoft.Web.Services.Dime.TypeFormatEnum.MediaType, stream)); ※stream:System.IO.Stream ※service:Webサービスオブジェクト | ||||
|
投稿日時: 2003-12-04 18:13
byte[]を返すというのもあるかもしれませんが、
URLを返してクライアントが、あらためてHTTPやFTPで取るのはだめでしょうか。 | ||||
|
投稿日時: 2003-12-04 18:28
Castsさん返信ありがとうございました。
確かにbyte[]に変換して送るというのも手ですね。 レスポンスタイムなども考えて進めていきたいと思います。 どうもありがとうございました。 | ||||
|
投稿日時: 2003-12-04 18:48
やってみました。
ちゃんと、表示されました。(わりと簡単) | ||||
|
投稿日時: 2003-12-05 10:36
Catsさん返信ありがとうございます。
質問の件ですが、更に調査を進めてみると解決しました。 下記ソースコードはサーバのサービスの一部です。 soapContexをResponseContextにすることで、 サーバからクライアントへのレスポンスに対してアタッチメントを行うことができました。 Catsさんテストまでしていただいて、ありがとうございました。 // // レスポンス用コンテキストを作成する // Microsoft.Web.Services.SoapContext soapContex = Microsoft.Web.Services.HttpSoapContext.ResponseContext; // // ファイルストリームを作成する // System.IO.FileStream fileStream = new System.IO.FileStream( Server.MapPath("incoming/" + originalName), System.IO.FileMode.Open); // // レスポンスに画像を添付する // soapContex.Attachments.Add( new Microsoft.Web.Services.Dime.DimeAttachment("image/jpeg", Microsoft.Web.Services.Dime.TypeFormatEnum.MediaType, fileStream1)); |
1