[英]Java download a file from HTTPS html form
我必须从网站下载文件。 这是普通的html表单,我通常会从html表单下载几个文件。 但这是在仅允许通过HTTPS访问的站点中。
我有一个很棒的程序,我不能使用Apache Commons HttpClient,因为除了excel和pdfs文件之外,我什么都无法下载。 获得Eclipse非常困难。
因此,我使用的是HttpURLConnection(我也尝试过HttpsURLConnection),但是这种方式我什至无法连接到该站点,因此将参数发送到表单并下载文件是不可能的。
拜托,有人可以帮我吗?
谢谢并恭祝安康。
好了,您应该使用HttpsURLConnection
并对请求进行身份验证。
在这里查看: 尝试使用HTTPS进行连接:服务器重定向过多次
编辑
应该是这样的代码:
private void SendRequest(string url, string data){
Stream dataStream = null;
WebResponse response = null;
try
{
string requestXml = Sendingxml.ToString();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);
string formParams = string.Format("data={0}", data);
byte[] byteArray = Encoding.UTF8.GetBytes(formParams);
request.ContentType = "application/x-www-form-urlencoded";
encoding='utf-8'";
request.ContentLength = byteArray.Length;
dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
response = request.GetResponse();
dataStream = response.GetResponseStream();
string responseFromServer = "";
using (StreamReader reader = new StreamReader(dataStream))
{
responseFromServer = reader.ReadToEnd();
}
return responseFromServer;
}
catch (Exception e)
{
throw new CommunicationFailure();
}
finally
{
if (dataStream != null)
dataStream.Close();
if (response != null)
response.Close();
}
}
private bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
return true;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.