繁体   English   中英

Java从HTTPS html表单下载文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM