使用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();
}