Web ページにログインし、(投稿後に表示される) ファイルをダウンロードしてから、再度ログアウトする必要があります。
ログインとログアウトは問題ありませんが、ファイルにアクセスしようとすると問題が発生します。
Web ブラウザーでフォームに入力すると、[OK] を押すと「成功しました」という Web ページが表示され、ファイルのダウンロード ボックスが表示されます。
HTTP クライアント (firebug によって FF で使用されるパラメーターをコピーする) を介して同じことを行うと、response.entity は Web ページですが、どこにもファイルが表示されません。誰かが私の問題に光を当てることができますか?
これが私のコードです(現時点では応答を保存しないことはわかっていますが、機能していれば、長いバイナリ応答が期待されます)
// get data
httpost = new HttpPost("https://webpage.com.au/folder/getfile.asp?param=2");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("p1", "0"));
nvps.add(new BasicNameValuePair("p2", "03"));
nvps.add(new BasicNameValuePair("p3", "1"));
nvps.add(new BasicNameValuePair("p4", "6"));
nvps.add(new BasicNameValuePair("p5", "1"));
nvps.add(new BasicNameValuePair("p6", "2"));
nvps.add(new BasicNameValuePair("p7", "1"));
nvps.add(new BasicNameValuePair("p8", "0"));
nvps.add(new BasicNameValuePair("p9", "G"));
httpost.setEntity(new UrlEncodedFormEntity(nvps, Consts.UTF_8));
response = httpclient.execute(httpost);
entity = response.getEntity();
printResponse(entity);
System.out.println("Get file post: " + response.getStatusLine());
EntityUtils.consume(entity);
System.out.println("Post file get cookies:");
printCookies(httpclient);
と応答:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="language" content="en-us"/>
<meta name="robots" content="noindex, nofollow"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="-1"/>
<link rel="stylesheet" href="/css/style.css" type="text/css"/>
<script language="javascript">
var wasSubmitted = false;
function SingleSubmit ()
{
var OK = !wasSubmitted;
wasSubmitted = true;
return OK;
}
</script>
</head>
<body bgcolor="#FFFFFF" text="black" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">
<br>
<center><br><p class="center"></p><p class="center"></p><p class="center">getting file<br>
<script language=Javascript>
document.location = "TransSumExcel.asp";
</script>
</center>
</body>
</html>