0

tif ファイルをダウンロードできる API を使用しています。私がやっていることは、非同期リクエストの結果を取得してから、ストリームをデスクトップ上のファイルにコピーすることです。IrfanView を使用してファイルを開くたびに、認識できないヘッダーがあると表示されます。

このデータを取得するための私の手順は次のとおりです。

まず、ReadAsStreamAsync()関数を使用してデータを取得します。取得したデータの内容を保持している変数の型はStreamです。次に、ファイルストリームを開き、CopyTo()関数を使用して結果からファイルにデータをコピーします。これはこれを行う正しい方法ですか?

            dynamic resultContent = null;
            Stream result = null;
            var queryString = args.Length == 0 ? "" : "?" + string.Join("&", args);
            var url = _cfg.Server.apiUrl + _apiUri + queryString;

            if (_apiOp == Operation.Read && !queryString.Contains("id"))
                resultContent = this.GetAsync(url).Result.Content.ReadAsStringAsync().Result;
            else if (_apiOp == Operation.Write)
                resultContent = this.PostAsync(url, content).Result.Content.ReadAsStringAsync().Result;
            else if (_apiOp == Operation.Delete)
                resultContent = this.DeleteAsync(url).Result.Content.ReadAsStringAsync().Result;
            else if (_apiOp == Operation.Read && queryString.Contains("id"))
                result = this.GetAsync(url).Result.Content.ReadAsStreamAsync().Result;

            if (queryString.Contains("id"))
            {
                var fileStream = File.Create(@"C:\Users\wei\Desktop\MyGeoTiff.tiff");
                result.CopyTo(fileStream);
                fileStream.Close();
            }
4

1 に答える 1

0

APi は、私が期待していた tif ファイルではなく、zip ファイルを返していました。ファイル拡張子を .zip に変更し、zip 内の tif を正常に取得できました。

于 2014-07-17T17:56:12.857 に答える