このページを参照として使用して、HTTPポストを介してDatacashからレポートをダウンロードしようとしていますが、どこが間違っているのかわかりません。
私の方法は以下の通りです:
private static void DownloadDatacashData(int howManyDays)
{
string post, url, group, user, password, startDate, endDate, type, csvFile;
url = "https://reporting.datacash.com/reporting2/csvlist?";
group = "123456";
user = "autoreport";
password = "foobar";
startDate = DateTime.Now.AddDays(howManyDays).ToString("yyyy-MM-dd");
endDate = DateTime.Now.ToString("yyyy-MM-dd");
type = "stl";
post = String.Format(@"group={0}&user={1}&password={2}&start_date={3}&end_date={4}&type={5}", group, user, password, startDate, endDate, type);
var request = (HttpWebRequest)WebRequest.Create(url);
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version11;
request.Method = "POST";
request.ContentLength = 0;
var postBytes = Encoding.ASCII.GetBytes(post);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postBytes.Length;
var requestStream = request.GetRequestStream();
requestStream.Write(postBytes, 0, postBytes.Length);
requestStream.Close();
var response = (HttpWebResponse)request.GetResponse();
var sr = new StreamReader(response.GetResponseStream());
csvFile = sr.ReadToEnd();
sr.Close();
var sw = new StreamWriter("C:\\foo\\bar.csv", false);
sw.Write(csvFile);
sw.Flush();
sw.Close();
}
まず、投稿を行います。しかし、私は常に「エラー:レポートタイプが見つかりません」というテキストのファイルを返します。URLを変更するとエラーが発生するため、このURLは確実にHTTPPOSTに応答しています。私はこれを使って、または使わずに試しましたか?初期URLで、?の有無にかかわらず 投稿文字列の先頭。
私はすでにDatacashのテクニカルサポートに連絡しようとしましたが、彼らは私を助けることができませんでした。私が使用しているコードを彼らに送ったところ、彼らの側には何も問題がなかったというだけでした。
クレデンシャルは正しく、パスワードは文字と数字の組み合わせです(特殊文字は使用できません)。
datacashを使用したことのある人はそれほど多くないでしょうが、私のコードとここの情報を見ると、私がしていることに明らかに何か問題がありますか?私は輪になって回っています。
ありがとうございました