Https SSL логин и PDF скачать

Я пишу для помощи в решении этой проблемы: подключитесь к сайту одного из наших поставщиков и автоматически загрузите счета в формате PDF. Я пробовал несколько способов:

1: Веб-браузер - я могу попасть на страницу со ссылками на PDF, но не могу сохранить их на диск (открывается в новом окне) (PDF создаются на лету и относятся к этому типу https://www.axxes.fr/it/client/pge1_relevefacturepdf.aspx?selnumdoc=700051126&typ=DUP&lng=ES&famdoc=DUP&typfic=PDF)

2: Watin - я не могу автоматически сохранить PDF как Webbrowser

3: HttpWebRequest - я не могу войти. Это код, который я использую:

public void doSomething()
{
    string post_data = "_cm_url=/it/client/default.aspx&_cm_user=user&_cm_pwd=pwd";
    string uri = "https://www.axxes.fr/it/identification/default.cgi";
    HttpWebRequest request = (HttpWebRequest)
    WebRequest.Create(uri); request.KeepAlive = false;
    request.ProtocolVersion = HttpVersion.Version10;
    request.Method = "POST";
    byte[] postBytes = Encoding.ASCII.GetBytes(post_data);
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = postBytes.Length;
    System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();
    Stream requestStream = request.GetRequestStream();
    requestStream.Write(postBytes, 0, postBytes.Length);
    requestStream.Close();
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    listBox1.Text = (new StreamReader(response.GetResponseStream()).ReadToEnd());
    Console.WriteLine(response.StatusCode);
}

public class MyPolicy : ICertificatePolicy
{
    public bool CheckValidationResult(ServicePoint srvPoint,
    X509Certificate certificate, WebRequest request,
    int certificateProblem)
    {
        return true;
    }
}

Сайт поставщика: https://www.axxes.fr/it/ Модуль аутентификации:

<form name="blocident" action="/it/identification/default.cgi" method="POST"> 
<input type="hidden" name="_cm_url" value="/it/client/default.aspx"> 
<div class="e_idlign"> 
 <div class="e_idcol1"> 
  <label for="login" accesskey="2">Login</label> 
  <input type="text" class="e_chp77px" name="_cm_user" id="login">
 </div> 
 <div class="nof"></div> 
 <div class="e_idcol2">
  <label for="password">Password</label> 
  <input type="password" class="e_chp77px" name="_cm_pwd" id="password"> 
 </div> 
</div> 
<div class="e_idlign"> 
 <input type="image" alt="Valider l'identification" src="/it/images/css/env/bt_ok.gif" class="e_btOk" name="btOk"> 
</div> 
<ul id="e_identLien"> 
  <li class="sep">
   <a href="/it/pge1_clientmoralcreation.aspx">Iscriversi</a>
  </li> 
  <li>
   <a href="/it/pge1_question.aspx">Password dimenticata?</a>
  </li> 
</ul>
</form>

С помощью Fiddler я попытался проанализировать трафик навигационного браузера, и это потому, что:

1

POST /it/identification/default.cgi HTTP/1.1
_cm_url=%2Fit%2Fclient%2Fdefault.aspx&_cm_user=user&_cm_pwd=password&btOk.x=23&btOk.y=12

2

GET /it/client/default.aspx HTTP/1.1
ASP.NET_SessionId=3hbcfrzstvxwo145tpgpvmvw
IdSes=4fba1069405c428bab1........

3

GET /it/client/pge1_clientrecherche.aspx HTTP/1.1
ASP.NET_SessionId=3hbcfrzstvxwo145tpgpvmvw
IdSes=4fba1069405c428.............

Пока код, который я разместил, является только запросом к CGI. Я, честно говоря, не могу понять, как получить доступ. Похоже, что-то не хватает.. печенье? Как это сделать? Есть ли у вас какие-либо советы?

Любая идея? Еще раз спасибо

0 ответов

Другие вопросы по тегам