2016-02-27 54 views
0

我最近开始使用web api的。无法使用C#从使用邮递员的web api下载文件

我需要从Web api下载C#项目中的文件,当我使用邮递员的发送和下载选项来打开web api时工作正常。请参阅图片,也请查看标题标签中的回复。这样,我可以直接将文件下载到我的电脑。

Api call using postman

我想从我的C#项目做的一样,我发现了以下两个链接,显示如何下载网页API的文件。

https://code.msdn.microsoft.com/HttpClient-Downloading-to-4cc138fd http://blogs.msdn.com/b/henrikn/archive/2012/02/16/downloading-a-google-map-to-local-file.aspx

我正在使用C#项目下面的代码获得响应:

private static async Task FileDownloadAsync() 
    { 
     using (var client = new HttpClient()) 
     { 

      client.DefaultRequestHeaders.Accept.Clear(); 
      client.DefaultRequestHeaders.Add("Accept", "text/html"); 
      try 
      { 
       // _address is exactly same which I use from postman 
       HttpResponseMessage response = await client.GetAsync(_address); 
       if (response.IsSuccessStatusCode) 
       { 
       } 
       else 
       { 
       } 
      } 
      catch (Exception) 
      { 
       throw; 
      } 
     } 
    } 

但是我没有得到所有响应(之前,我可以开始响应转换到一个文件),请检查错误信息:

Error message

我在这里想念什么,任何帮助将不胜感激。

回答

1

由于(500s)错误提示 - 拒绝请求的服务器。我看到的唯一可能导致问题的是字符集编码。你的是默认的UTF-8。你可以尝试其他编码。

+0

那么我应该改变代码来解决这个问题呢? – Randeep

+0

查看我的更新回答。你使用默认编码,但服务器可能需要不同的东西......比如utf-16。你能找到这个服务的somedocs吗? – ekostadinov

+0

我对web api非常陌生,如果你知道,请让我知道如何在制作httpClient电话时指定编码 – Randeep

0

您的请求标题表示您只接受HTML响应。这可能是一个问题。

+0

我也尝试过使用application/json,但是同样的错误 – Randeep

+0

完全舍弃内容类型。 –