以编程方式下载文件

时间:2017-01-24 21:50:53

标签: c# http

使用C#4.5,我正在尝试以编程方式登录到第三方网站,然后从该网站上的另一个页面下载csv文件。 我尝试使用以下方法。我没有得到任何错误,但它似乎下载他们的登录页面的内容并将其保存为csv文件而不是具有数据的实际csv文件。

另外,如果我在登录后阅读了响应流,我会看到我正在返回登录网页。

我在这里想念的是什么? 另外,我还需要发布表格的名称。我如何实现这一目标?请提供建议。

更新:我尝试在请求对象中使用CookieContainer,但仍然没有运气..我得到了相同的结果。

感谢。

//Log-on to website and post user and password
    var request = new HttpRequestMessage(HttpMethod.Post, myLogonURL);
    request.Content = new StringContent("{\"user\":\"abcd\",\"password\":test}", Encoding.UTF8, "application/x-www-form-urlencoded");                                                            
    var sendTask = client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);
    var response = sendTask.Result.EnsureSuccessStatusCode();

    //Download the file
    request = new HttpRequestMessage(HttpMethod.Get, fileDownloadURL);
    sendTask = client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);

    response = sendTask.Result.EnsureSuccessStatusCode();
    var httpStream = await response.Content.ReadAsStreamAsync();


    //Save the downloaded file
    using (var fileStream = File.Create(downloadedFilePath))
    using (var reader = new StreamReader(httpStream)) {
        httpStream.CopyTo(fileStream);
        fileStream.Flush();
    }

0 个答案:

没有答案