ログインが必要な新聞の Web サイトから PDF をダウンロードする小さなプログラムを作成しようとしています。stackoverflow にあるこのライブラリを使用しています: http://pastebin.com/RPNU39vF
そして、私はこのコードでそれを呼び出します:
private void backupFunzionante()
{
String postData = "log=MYEMAIL@gmail.com&pwd=MYPASSWORD";
myWeb.RequestManager manager = new myWeb.RequestManager();
String uri = "http://shop.ilfattoquotidiano.it/login/?action=login";
HttpWebResponse response;
response = manager.SendPOSTRequest(uri, postData, null, null, true);
String strResp = response.StatusCode.ToString();
label1.Text += "###";
Uri pdfUrl = new Uri("http://pdf.ilfattoquotidiano.it/openpdf/?n=20120927");
response = manager.SendPOSTRequest("http://pdf.ilfattoquotidiano.it/openpdf/?n=20120927", "", null, null, true);
long size = response.ContentLength;
Stream downloadStream = response.GetResponseStream();
using (Stream file = File.OpenWrite("C:\\f.pdf"))
{
CopyStream(downloadStream, file);
}
}
public static void CopyStream(Stream input, Stream output)
{
byte[] buffer = new byte[8 * 1024];
int len;
while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, len);
}
}
このコードは、.NET で実行すると完全に機能しますが、mono で呼び出すと空のファイルを返します。
長いサイズのサイズ= response.ContentLength;なので、問題はhttpポストリクエストにあるはずだと思います 。 ゼロです。
2 つの実行可能ファイルにこのような違いがあるのはなぜですか? 完全に移植可能なアプリケーションを作成するためにできること (Linux がメインの OS であるため、Linux でも使用したい)
ご協力ありがとうございました。