2017-11-03 54 views
0

私はrestsharpを使ってオンラインでホストされた簡単なpdfをダウンロードするのに苦労しています。私は1時間以上コードを使いこなしてきましたが、私が得られるのはヌルオブジェクトの結果だけです。RestSharpでpdfをダウンロードできないのですか?

ファイルはGETを使用しPOSTMANで簡単にダウンロードされ、コンテンツヘッダーは設定されていませんが、それでも何が得られますか?

[TestFixture] 
public class Sandbox 
{ 
    [Test] 
    public void Test() 
    { 
     var uri = "https://www.nlm.nih.gov/mesh/2018/download/2018NewMeShHeadings.pdf"; 
     var client = new RestClient(); 
     var request = new RestRequest(uri, Method.GET); 
     //request.AddHeader("Content-Type", "application/octet-stream"); 
     byte[] response = client.DownloadData(request); 
     File.WriteAllBytes(@"C:\temp\1.pdf", response); 
    } 
} 

更新Return a Stream

 var baseUri = "https://www.nlm.nih.gov/mesh/2018/download/"; 
     var client = new RestClient(baseUri); 
     var request = new RestRequest("2018NewMeShHeadings.pdf", Method.GET); 
     request.AddHeader("Content-Type", "application/octet-stream"); 
     var tempFile = Path.GetTempFileName(); 
     var stream = File.Create(tempFile, 1024, FileOptions.DeleteOnClose); 
     request.ResponseWriter = responseStream => responseStream.CopyTo(stream); 
     var response = client.DownloadData(request); 

ストリームは、現在ダウンロードされたデータが移入され

以下は私が周りに実験されているnoddyでサンドボックステストです。

+0

WEBAPI経由でストリームを返したいここに着地いずれかを - そして、ここを参照してください:http://nodogmablog.bryanhogan.net/2017/02/downloading-an-inmemory- file-using-web-api-2/ – IbrarMumtaz

答えて

1

このお試しください:

var uri = "https://www.nlm.nih.gov/mesh/2018/download/"; 
    var client = new RestClient(uri); 
    var request = new RestRequest("2018NewMeShHeadings.pdf", Method.GET); 
    //request.AddHeader("Content-Type", "application/octet-stream"); 
    byte[] response = client.DownloadData(request); 
+0

これはうまくいきました。 – IbrarMumtaz

+0

動作している場合:-)追加しないでください –

+0

どのように応答ストリームを返しますか?私は再びヌルになっています。 – IbrarMumtaz

関連する問題