API punteggio AI: Invia file

L'API sendfile di calcolo del punteggio consente a un utente di inviare un file per il calcolo del punteggio della posta in blocco. Il tipo di contenuto deve essere multipart / form-data. Fare riferimento all'esempio C # per i dettagli.

POST / V2 / PUNTEGGIO / SENDFILE

URL API: https://bulkapi.zerobounce.net/v2/scoring/sendfile

Parametri URL

  • Parametro
    Richiesto / Opzionale
    Descrizione
  • file
    Necessario
    Il file CSV o txt. Contenuti dell'array di byte per il file inviato. L'intestazione del contenuto è di tipo "testo / csv"
  • api_key
    Necessario
    La tua chiave API, trovata nel tuo account
  • email_address_column
    Necessario
    L'indice di colonna dell'indirizzo e-mail nel file. L'indice inizia da 1
  • return_url
    Opzionale
    L'URL verrà utilizzato come richiamata al completamento del servizio di calcolo del punteggio
  • has_header_row
    Opzionale
    Se la prima riga del file inviato è una riga di intestazione. Vero o falso

Se durante la richiesta di invio del file è stato specificato return_url nei Dati modulo multipart, al termine del processo di convalida POST i seguenti dati.


                {
                  file_id": "aaaaaaaa-zzzz-xxxx-yyyy-5003727fffff",
                  "nome del file": "Il tuo nome file.csv", 
                  "data di caricamento": "10/20/2018 4:35: 58 PM" 
                }
                

Invia esempi di codice file

  • Visual Basic
  • C#
  • PHP
  • Giava
  • Pitone
  • Veloce
  • Obiettivo C
  • Android Java
      
'Invia esempio di file in VB.net

Pubblico Classe SendFileStatus
   Pubblico Proprietà success Come Booleano
   Pubblico Proprietà message Come Corda
   Pubblico Proprietà file_name Come Corda
   Pubblico Proprietà file_id Come Corda
Fine Classe

Privato Condivisa Sub SendFileAPITest()
   Fioco fileFullPath Come Corda = $"percorso completo del file di un file csv o txt"  ' necessario
   Fioco apiKey Come Corda = "sostituisci con la tua chiave api qui"              ' necessario
   Fioco emailAddressColumn Come Numero intero = 2  ' necessario
   Fioco ipAddressColumn Come Numero intero? = 11   'facoltativo
   Fioco hasHeaderRow Come Booleano? = Vero    'facoltativo
   Fioco returnUrl Come Corda = Niente      'facoltativo

   PROVARE
       Fioco sendFileStatus Come SendFileStatus = SendFile(fileFullPath, apiKey, emailAddressColumn, ipAddressColumn, hasHeaderRow, returnUrl).Result
       Console.Scrivi(JsonConvert.SerializeObject(sendFileStatus, Formatting.Indented))
   Catturare ex Come Exception
       Console.Scrivi(ex.InnerException.Message)
   Fine PROVARE

   Console.ReadKey()
Fine Sub

Pubblico Condivisa Async Funzione SendFile(ByVal fileFullPath Come Corda, 
                                     ByVal apiKey Come Corda, 
                                     ByVal emailAddressColumn Come Numero intero, 
                                     ByVal Opzionale ipAddressColumn Come Numero intero? = Niente, 
                                     ByVal Opzionale hasHeaderRow Come Booleano? = Niente, 
                                     ByVal Opzionale returnUrl Come Corda = Niente) Come Task(Di SendFileStatus)

   Se Corda.IsNullOrEmpty(fileFullPath) Poi Gettare Nuovo Exception("Errore: fileFullPath è richiesto")
   Se Corda.IsNullOrEmpty(apiKey) Poi Gettare Nuovo Exception("Errore: è richiesto apiKey")
   Fioco fi = Nuovo FileInfo(fileFullPath)
   Fioco fileContents = File.ReadAllBytes(fi.FullName)
   Fioco fileName = fi.Nome
   Fioco uri Come Uri = Nuovo Uri("https://bulkapi.zerobounce.net/v2/scoring/sendfile")

   Utilizzando client = Nuovo HttpClient()

       Utilizzando request = Nuovo HttpRequestMessage(HttpMethod.Post, uri)
           Fioco multiPartContent Come MultipartFormDataContent = Nuovo MultipartFormDataContent()
           Fioco byteArrayContent Come ByteArrayContent = Nuovo ByteArrayContent(fileContents)
           byteArrayContent.Headers.Add("Tipo di contenuto", "text / csv")
           multiPartContent.Add(byteArrayContent, "file", fileName)
           multiPartContent.Add(Nuovo StringContent(apiKey), "api_key")
           multiPartContent.Add(Nuovo StringContent(emailAddressColumn.ToString()), "email_address_column")
           Se ipAddressColumn Non è Niente Poi multiPartContent.Add(Nuovo StringContent(ipAddressColumn.ToString()), "ip_address_column")
           Se hasHeaderRow Non è Niente Poi multiPartContent.Add(Nuovo StringContent(Se((hasHeaderRow = Vero), "vero", "false")), "has_header_row")
           Se returnUrl Non è Niente Poi multiPartContent.Add(Nuovo StringContent(returnUrl.ToString()), "return_url")
           request.Content = multiPartContent

           Utilizzando response = Await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None).ConfigureAwait(Falso)
               Fioco content = Await response.Content.ReadAsStringAsync()

               Se response.IsSuccessStatusCode = Falso Poi
                   Fioco errore Come Corda = $"StatusCode = {CInt(response.StatusCode)}, Content = {content}"
                   Gettare Nuovo Exception(errore)
               Fine Se

               Ritorno JsonConvert.DeserializeObject(Di SendFileStatus)(content)
           Fine Utilizzando
       Fine Utilizzando
   Fine Utilizzando
Fine Funzione
   

// Invia esempio di file in C #

Pubblico Classe Sendfilestatus
{
   Pubblico bool success { ottenere; impostato; }
   Pubblico Corda message { ottenere; impostato; }
   Pubblico Corda file_name { ottenere; impostato; }
   Pubblico Corda file_id { ottenere; impostato; }
}

Privato statico vuoto Sendfileapitest()
{
   Corda fileFullPath = $"percorso completo del file di un file csv o txt";  //necessario
   Corda apiKey = "sostituisci con la tua chiave api qui";  //necessario       
   int emailAddressColumn = 2;  //necessario
   int? ipAddressColumn = 11;  //Opzionale
   bool? hasHeaderRow = Vero;  //Opzionale
   Corda returnUrl = nullo;  //Opzionale

   PROVARE
   {
       Sendfilestatus sendFileStatus = Inviare file(fileFullPath, apiKey, emailAddressColumn, ipAddressColumn, hasHeaderRow, returnUrl).Result;
       Console.Scrivi(JsonConvert.Serializeobject(sendFileStatus, Formatting.Indented));
   }
   Catturare (Eccezione ex)
   {
       Console.Scrivi(ex.InnerException.Message);
   }

   Console.ReadKey();
}

Pubblico statico async Task<SendFileStatus> Inviare file(Corda fileFullPath, Corda apiKey, int emailAddressColumn, 
                                           int? ipAddressColumn = nullo, bool? hasHeaderRow = nullo, Corda returnUrl = nullo)
{
   Se (Corda.IsNullOrEmpty(fileFullPath))
       Gettare Nuovo Eccezione("Errore: fileFullPath è richiesto");
   Se (Corda.IsNullOrEmpty(apiKey))
       Gettare Nuovo Eccezione("Errore: è richiesto apiKey");

   var fi = Nuovo Fileinfo(fileFullPath);
   var fileContents = File.Readallbytes(fi.FullName);
   var fileName = fi.Name;

   Uri uri = Nuovo Uri(@"https://bulkapi.zerobounce.net/v2/scoring/sendfile");

   Utilizzando (var client = Nuovo HttpClient())
   Utilizzando (var request = Nuovo Httprequestmessage(HttpMethod.Post, uri))
   {
       Multipartformdatacontent multiPartContent = Nuovo Multipartformdatacontent();
       Bytearraycontent byteArrayContent = Nuovo Bytearraycontent(fileContents);
       byteArrayContent.Headers.INSERISCI("Tipo di contenuto", "text / csv");
       multiPartContent.INSERISCI(byteArrayContent, "file", fileName);
       multiPartContent.INSERISCI(Nuovo Stringcontent(apiKey), "api_key");
       multiPartContent.INSERISCI(Nuovo Stringcontent(emailAddressColumn.Accordare()), "email_address_column");
       Se (ipAddressColumn != nullo)
           multiPartContent.INSERISCI(Nuovo Stringcontent(ipAddressColumn.Accordare()), "ip_address_column");
       Se (hasHeaderRow != nullo)
           multiPartContent.INSERISCI(Nuovo Stringcontent((hasHeaderRow == Vero) ? "vero" : "false"), "has_header_row");
       Se (returnUrl != nullo)
           multiPartContent.INSERISCI(Nuovo Stringcontent(returnUrl.Accordare()), "return_url");

       request.Content = multiPartContent;

       Utilizzando (var response = await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None).Configureawait(Falso))
       {
           var content = await response.Content.Readasstringasync();

           Se (response.IsSuccessStatusCode == Falso)
           {
               var error = $"StatusCode = {(int) response.StatusCode}, Content = {content}";
               Gettare Nuovo Eccezione(error);
           }

           Ritorno JsonConvert.Deserializeobject<Sendfilestatus>(content);
       }
   }
}
   

 <?php

$ ricciolo = curl_init();

curl_setopt_array($ ricciolo, vettore(
 CURLOPT_URL => "https://bulkapi.zerobounce.net/v2/scoring/sendfile",
 CURLOPT_RETURNTRANSFER => Vero,
 CURLOPT_ENCODING => "",
 CURLOPT_MAXREDIRS => 10,
 CURLOPT_TIMEOUT => 30,
 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
 CURLOPT_CUSTOMREQUEST => "INVIARE",
 CURLOPT_POSTFIELDS => "------ WebKitFormBoundary7MA4YWxkTrZu0gW Disposizione contenuto: form-data; name ="api_key"replacewithyours ------ WebKitFormBoundary7MA4YWxkTrZu0gW Disposizione-contenuto: form-data; name ="email_address_column"replacewithyours ------ WebKitFormBoundary7MA4YWxkTrZu0gW--",
 CURLOPT_HTTPHEADER => vettore(
   "Postino-token: fae6714d-dc09- 4 e08-b50d-c97030603b61",
   "controllo cache: no-cache",
   "content-type: multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW"
 ),
));

$ risposta = curl_exec($ ricciolo);
$ err = curl_error($ ricciolo);

curl_close($ ricciolo);

Se ($ err) {
 eco "Errore cURL #:" . $ err;
} altro {
 eco $ risposta;
}
?>
   

 Okhttpclient client = Nuovo Okhttpclient();

 Tipo di supporto mediaType = Tipo di supporto.parse("multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW");
 Requestbody body = Requestbody.creare(mediaType, "------Webkitformboundary7ma4ywxktrzu0gw
Soddisfare-Disposizione: form-data; name="api_key"

replacewithyours
------Webkitformboundary7ma4ywxktrzu0gw
Soddisfare-Disposizione: form-data; name="email_address_column"

replacewithyours
------Webkitformboundary7ma4ywxktrzu0gw--");
 Richiesta request = Nuovo Richiesta.Costruttore()
   .url("https://bulkapi.zerobounce.net/v2/scoring/sendfile")
   .inviare(body)
   .AddHeader("Tipo di contenuto", "multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW")
   .AddHeader("cache-control", "no-cache")
   .AddHeader("Postino-token", "25 6 d608ba- cb5- 4 88 c8c- d7-d47276c67d8e")
   .costruire();
 
 Risposta response = client.nuova chiamata(request).eseguire();
   

 importare http.client

 conn = http.client.HTTPConnection("bulkapi, zerobounce netti")
 
 payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="api_key"

replacewithyours
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="email_address_column"

replacewithyours
------WebKitFormBoundary7MA4YWxkTrZu0gW--"
 
 headers = {
     'tipo di contenuto': "multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
     'cache-control': "no-cache",
     'Postino-token': "bc455eda- 9884-417 e-b16f- 3 a5fef3f7540"
     }
 
 conn.request("INVIARE", "v2, sendfile", payload, headers)
 
 res = conn.getresponse()
 data = res.read()
 
 stampare(data.decode("utf- 8"))
   
   

 importare FONDAZIONE

 permettere headers = [
   "Tipo di contenuto": "multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
   "cache-control": "no-cache",
   "Postino-token": "2 f68fcc3-d9b6- 458 b-b613- 56 f6a03e6617"
 ]
 permettere parameters = [
   [
     "nome": "api_key",
     "valore": "replacewithyours"
   ],
   [
     "nome": "email_address_column",
     "valore": "replacewithyours"
   ]
 ]
 
 permettere boundary = "---- WebKitFormBoundary7MA4YWxkTrZu0gW"
 
 var body = ""
 var error: NSError? = zero
 per param in parameters {
   permettere paramName = param["nome"]!
   body += "--(boundary)
"
   body += "Disposizione del contenuto: form-data; name ="(paramName)""
   Se permettere filename = param["nome del file"] {
     permettere contentType = param["Tipo di contenuto"]!
     permettere fileContent = Corda(contentsOfFile: filename, encoding: Corda.Codifica.utf8)
     Se (error != zero) {
       stampare(error)
     }
     body += "; nomefile ="(filename)"
"
     body += "Soddisfare-Genere: (contentType)

"
     body += fileContent
   } altro Se permettere paramValue = param["valore"] {
     body += "

(paramValue)"
   }
 }
 
 permettere request = Nsmutableurlrequest(url: NSURL(string: "https://bulkapi.zerobounce.net/v2/scoring/sendfile")! Come url, 
                                       cachePolicy: .useProtocolCachePolicy,
                                       timeoutInterval: 10.0)
 request.httpMethod = "INVIARE"
 request.allHTTPHeaderFields = headers
 request.httpBody = postData Come Dati
 
 permettere session = Urlsession.shared
 permettere dataTask = session.datatask(with: request Come URLRequest, completionHandler: { (data, response, error) -> vuoto in
   Se (error != zero) {
     stampare(error)
   } altro {
     permettere httpResponse = response Come? Httpurlresponse
     stampare(httpResponse)
   }
 })
 
 dataTask.curriculum vitae()
   

// Seleziona la lingua VB o C # per l'importazione del file # esempio campione #  <Foundation/Foundation.h>

NSDictionary *headers = @{ @"tipo di contenuto": @ "multipart / form-data; boundary = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
                           @ "cache-control": @ "no-cache",
                           @ "Postino-token": @ "92 624 c5b06e- f- 44 e5-bd86-f537bc6cef67" };
NSArray *parameters = @[ @{ @"nome": @ "api_key", @"valore": @ "replacewithyours" },
                         @{ @"nome": @ "email_address_column", @"valore": @ "replacewithyours" } ];
NSString *boundary = @ "---- WebKitFormBoundary7MA4YWxkTrZu0gW";

NSError *error;
NSMutableString *body = [NSMutableString string];
per (NSDictionary *param in parameters) {
   [body appendFormat:@"--%@
", boundary];
   Se (param[@"nome del file"]) {
       [body appendFormat:@ "Disposizione dei contenuti: form-data; name ="%@ "; nome file ="%@"
", param [@"name"], param [@"fileName"]];
       [body appendFormat:@"Content-Type: %@

", param [@"contentType"]];
       [body appendFormat:@"%@", [NSString stringWithContentsOfFile:param[@"nome del file"] encoding:NSUTF8StringEncoding error:&error]];
       Se (error) {
           NSLog(@"%@", error);
       }
   } altro {
       [body appendFormat:@ "Disposizione dei contenuti: form-data; name ="%@"

", param [@"name"]];
       [body appendFormat:@"%@", param[@"valore"]];
   }
}
[body appendFormat:@"
--%@--
", boundary];
NSData *postData = [body dataUsingEncoding:NSUTF8StringEncoding];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://bulkapi.zerobounce.net/v2/scoring/sendfile"]
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:10.0];
[request setHTTPMethod:@"INVIARE"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
                                           completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                               Se (error) {
                                                   NSLog(@"%@", error);
                                               } altro {
                                                   NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
                                                   NSLog(@"%@", httpResponse);
                                               }
                                           }];
[dataTask resume];
   

//N/A
   

Risposta dell'endpoint

Risposta riuscita

      
{
 "successo": Vero,
 "messaggio": "File accettato",
 "nome del file": "Il tuo nome file.csv",
 "file_id": "aaaaaaaa-zzzz-xxxx-yyyy 5003727 fffff"
}
   

Risposta all'errore

      
   {
     "successo": Falso,
     "messaggio": [
         "Messaggio di errore"
     ]
 }