CSV-Datei wird veröffentlicht – Perl- und Java-Beispiele

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 1 Minute Lesedauer
  • 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();
    }