CSV-Datei wird veröffentlicht – Perl- und Java-Beispiele
Ein Beispiel mit Perl zum Veröffentlichen einer CSV-Datei mit Anmeldeinformationen für die Standardauthentifizierung und der Java Apache HttpClient-Klasse zum Veröffentlichen einer CSV-Datei mit Anmeldeinformationen für die Standardauthentifizierung.
Weitere Informationen finden Sie unter Veröffentlichen Sie CSV- oder Excel-Dateien direkt in einem Importsatz.
Perl-Beispiel
# file: uploadafile.pl
# call me like this:
# uploadafile.pl --url="https://instance.service-now.com/sys_import.do?sysparm_import_set_tablename=dloo_test&sysparm_transform_after_load=true"
# --uploadfile=/Users/davidloo/Desktop/test_files/test_users.csv
#
# the "sysparm_transform_after_load=true" parameter instructs the import set to transform immediately after loading
#
use strict;
use LWP::UserAgent;
use HTTP::Request::Common;
use Getopt::Long;
use File::Basename;
my ( $o_url, $o_fqn );
GetOptions(
"url=s" => \$o_url,
"uploadfile=s" => \$o_fqn,
);
# mandatory arguments: url
&usage unless ( $o_url && $o_fqn );
my $url = $o_url;
my $fname = $o_fqn;
# put timeouts, proxy etc into the useragent if needed
my $ua = LWP::UserAgent->new();
# setup basic authentication credentials
$ua->credentials(
'demo.service-now.com:443',
'Service-now',
'admin' => 'admin'
);
my $req = POST $url, Content_Type => 'form-data',
Content => [
submit => 1,
upfile => [ $fname ]
];
my $response = $ua->request($req);
if ($response->is_success()) {
print "OK: ", $response->content;
} else {
print $response->as_string;
}
exit;
sub usage {
printf "usage: %s --url=%s --uploadfile=%s\\n",
basename($0),'https://....','c:/data/test.csv';
exit
}
Java-Beispiel
Hinweis:
Der Apache HttpClient kann die Menge der Daten beschränken, die Sie in einer einzelnen Transaktion importieren können. Dieses Beispiel ist als Ausgangspunkt gedacht und sollte nicht in der Produktion verwendet werden.
HttpClient httpclient = new HttpClient();
PostMethod post = new PostMethod("https://instance-name.service-now.com/sys_import.do?sysparm_import_set_tablename=u_test_upload&sysparm_transform_after_load=true");
try {
Credentials defaultcreds = new UsernamePasswordCredentials("admin", "admin");
httpclient.getState().setCredentials(AuthScope.ANY, defaultcreds); // Prepare HTTP post
httpclient.getParams().setAuthenticationPreemptive(true);
File targetFile = new File("/Users/davidloo/Desktop/test_files/nodeinfo2736820198834983863.csv");
Part[] parts = { new FilePart(targetFile.getName(), targetFile) };
post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams()));
int result = httpclient.executeMethod(post);
// Display status code
System.out.println("Response status code: " + result);
// Display response
System.out.println("Response body: "+post.getResponseBodyAsString());
} catch(Exception e) {
System.err.println(e.getMessage());
} finally {
// Release current connection to the connection pool
// once you are done
post.releaseConnection();
}