Il existe une page Web qui comprend un bouton dans le formulaire. En cliquant sur ce bouton, une requête POST est envoyée et un fichier CSV est téléchargé. J'essaye d'automatiser le processus de téléchargement de CSV en utilisant LWP :: UserAgent.Demande POST avec un type de contenu multipart/form-data pour télécharger un fichier
Je Chrome de remarquer les outils de développement que le Content-Type
est multipart/form-data; boundary=---WebKitFormBoundary....
Toute idée de comment puis-je envoyer la Request Payload
exacte des outils de développement qui est affiché?
Je fais généralement ci-dessous pour le type de contenu x-www-form-urlencoded
. Mais je n'ai aucune idée de la façon de soumettre des données de formulaire en plusieurs parties.
my $ua = LWP::UserAgent->new;
$ua->cookie_jar({ file => "cookie.txt", autosave => 1});
my $request = HTTP::Request->new('POST', $url);
#copy the form_data from chrome developer tools
my $form_data = 'key=val&key2=val2';
#the form_data is too big (and is in parts) in case of multipart content type
$request->content($form_data);
$request->header('Content-Type' => "application/x-www-form-urlencoded");
#I'll have to use `multipart/form-data; boundary=---WebKitFormBoundary....`
#add some other headers like 'Origin', 'Host' and 'Referer' in similar manner
#...
#...
push @{ $ua->requests_redirectable }, 'POST';
my $response = $ua->request($request);
#Get the file