एआई स्कोरिंग एपीआई: फ़ाइल भेजें

स्कोरिंग sendfile एपीआई उपयोगकर्ता को बल्क ईमेल स्कोरिंग के लिए एक फ़ाइल भेजने की अनुमति देता है। सामग्री प्रकार को मल्टीपार्ट / फॉ्म-डेटा होना चाहिए। कृपया विवरण के लिए C # उदाहरण देखें।

पोस्ट / V2 / स्कोरिंग / प्रेषक

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

URL पैरामीटर

  • पैरामीटर
    आवश्यक / वैकल्पिक
    विवरण
  • फ़ाइल
    अपेक्षित
    सीएसवी या txt फ़ाइल। प्रस्तुत फ़ाइल के लिए बाइट सरणी सामग्री। सामग्री का शीर्ष लेख "पाठ / सीएसवी" का प्रकार है
  • एपीआई कुंजी
    अपेक्षित
    आपकी API कुंजी, आपके खाते में मिली
  • email_address_column
    अपेक्षित
    फ़ाइल में ईमेल पते का कॉलम इंडेक्स। सूचकांक 1 से शुरू होता है
  • return_url
    ऐच्छिक
    स्कोरिंग सेवा के पूरा होने पर URL को कॉलबैक के रूप में उपयोग किया जाएगा
  • has_header_row
    ऐच्छिक
    यदि सबमिट की गई फ़ाइल में से पहली पंक्ति एक हेडर पंक्ति है। सही या गलत

यदि कोई फ़ाइल फ़ाइल अनुरोध के दौरान मल्टीपार्ट फॉर्म डेटा में कोई रिटर्न_url निर्दिष्ट किया गया था, तो हम सत्यापन प्रक्रिया पूरी होने पर निम्न डेटा को URL पर पोस्ट कर देंगे।


                {
                  file_id": "aaaaaaaa-zzzz-xxxx-yyyy-5003727fffff",
                  "फ़ाइल का नाम": "आपकी फ़ाइल name.csv", 
                  "अपलोड की तारीख": "10/20/2018 4:35: 58 PM" 
                }
                

फ़ाइल कोड नमूने भेजें

  • मूल दृश्य
  • C#
  • पीएचपी
  • जावा
  • अजगर
  • तीव्र
  • उद्देश्य सी
  • Android जावा
      
'VB.net में फ़ाइल नमूना भेजें

जनता कक्षा SendFileStatus
   जनता संपत्ति success जैसा बूलियन
   जनता संपत्ति message जैसा तार
   जनता संपत्ति file_name जैसा तार
   जनता संपत्ति file_id जैसा तार
समाप्त कक्षा

निजी साझा उप SendFileAPITest()
   धुंधला fileFullPath जैसा तार = $"एक csv या txt फ़ाइल का पूर्ण फ़ाइल पथ"  'की आवश्यकता है
   धुंधला apiKey जैसा तार = "यहाँ अपने एपीआई कुंजी के साथ बदलें"              'की आवश्यकता है
   धुंधला emailAddressColumn जैसा पूर्णांक = 2  'की आवश्यकता है
   धुंधला ipAddressColumn जैसा पूर्णांक? = 11   'वैकल्पिक
   धुंधला hasHeaderRow जैसा बूलियन? = सच    'वैकल्पिक
   धुंधला returnUrl जैसा तार = कुछ भी तो नहीं      'वैकल्पिक

   प्रयत्न
       धुंधला sendFileStatus जैसा SendFileStatus = SendFile(fileFullPath, apiKey, emailAddressColumn, ipAddressColumn, hasHeaderRow, returnUrl).Result
       Console.लिखो(JsonConvert.SerializeObject(sendFileStatus, Formatting.Indented))
   पकड़ ex जैसा Exception
       Console.लिखो(ex.InnerException.Message)
   समाप्त प्रयत्न

   Console.ReadKey()
समाप्त उप

जनता साझा Async समारोह SendFile(Byval fileFullPath जैसा तार, 
                                     Byval apiKey जैसा तार, 
                                     Byval emailAddressColumn जैसा पूर्णांक, 
                                     Byval ऐच्छिक ipAddressColumn जैसा पूर्णांक? = कुछ भी तो नहीं, 
                                     Byval ऐच्छिक hasHeaderRow जैसा बूलियन? = कुछ भी तो नहीं, 
                                     Byval ऐच्छिक returnUrl जैसा तार = कुछ भी तो नहीं) जैसा Task(का SendFileStatus)

   अगर तार.IsNullOrEmpty(fileFullPath) फिर फेंकना नया Exception("त्रुटि: fileFullPath आवश्यक है")
   अगर तार.IsNullOrEmpty(apiKey) फिर फेंकना नया Exception("त्रुटि: एपीकेआई की आवश्यकता है")
   धुंधला fi = नया FileInfo(fileFullPath)
   धुंधला fileContents = File.ReadAllBytes(fi.FullName)
   धुंधला fileName = fi.नाम
   धुंधला uri जैसा Uri = नया Uri("https://bulkapi.zerobounce.net/v2/scoring/sendfile")

   का उपयोग करते हुए client = नया HttpClient()

       का उपयोग करते हुए request = नया HttpRequestMessage(HttpMethod.Post, uri)
           धुंधला multiPartContent जैसा MultipartFormDataContent = नया MultipartFormDataContent()
           धुंधला byteArrayContent जैसा ByteArrayContent = नया ByteArrayContent(fileContents)
           byteArrayContent.Headers.Add("सामग्री प्रकार", "text / सीएसवी")
           multiPartContent.Add(byteArrayContent, "फाइल", fileName)
           multiPartContent.Add(नया StringContent(apiKey), "एपीआई कुंजी")
           multiPartContent.Add(नया StringContent(emailAddressColumn.ToString()), "email_address_column")
           अगर ipAddressColumn नहीं है कुछ भी तो नहीं फिर multiPartContent.Add(नया StringContent(ipAddressColumn.ToString()), "ip_address_column")
           अगर hasHeaderRow नहीं है कुछ भी तो नहीं फिर multiPartContent.Add(नया StringContent(अगर((hasHeaderRow = सच), "सच", "असत्य")), "has_header_row")
           अगर returnUrl नहीं है कुछ भी तो नहीं फिर multiPartContent.Add(नया StringContent(returnUrl.ToString()), "return_url")
           request.Content = multiPartContent

           का उपयोग करते हुए response = Await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None).ConfigureAwait(असत्य)
               धुंधला content = Await response.Content.ReadAsStringAsync()

               अगर response.IsSuccessStatusCode = असत्य फिर
                   धुंधला त्रुटि जैसा तार = $"StatusCode = {CInt(response.StatusCode)}, Content = {content}"
                   फेंकना नया Exception(त्रुटि)
               समाप्त अगर

               वापसी JsonConvert.DeserializeObject(का SendFileStatus)(content)
           समाप्त का उपयोग करते हुए
       समाप्त का उपयोग करते हुए
   समाप्त का उपयोग करते हुए
समाप्त समारोह
   

// C # में फ़ाइल नमूना भेजें

जनता कक्षा Sendfilestatus
{
   जनता bool success { प्राप्त; सेट; }
   जनता तार message { प्राप्त; सेट; }
   जनता तार file_name { प्राप्त; सेट; }
   जनता तार file_id { प्राप्त; सेट; }
}

निजी स्थिर शून्य Sendfileapitest()
{
   तार fileFullPath = $"एक csv या txt फ़ाइल का पूर्ण फ़ाइल पथ";  // आवश्यक
   तार apiKey = "यहाँ अपने एपीआई कुंजी के साथ बदलें";  // आवश्यक       
   पूर्णांक emailAddressColumn = 2;  // आवश्यक
   पूर्णांक? ipAddressColumn = 11;  // वैकल्पिक
   bool? hasHeaderRow = सच;  // वैकल्पिक
   तार returnUrl = शून्य;  // वैकल्पिक

   प्रयत्न
   {
       Sendfilestatus sendFileStatus = फाइल भेज(fileFullPath, apiKey, emailAddressColumn, ipAddressColumn, hasHeaderRow, returnUrl).Result;
       Console.लिखो(JsonConvert.Serializeobject(sendFileStatus, Formatting.Indented));
   }
   पकड़ (अपवाद ex)
   {
       Console.लिखो(ex.InnerException.Message);
   }

   Console.कुंजी पढ़ें();
}

जनता स्थिर async Task<SendFileStatus> फाइल भेज(तार fileFullPath, तार apiKey, पूर्णांक emailAddressColumn, 
                                           पूर्णांक? ipAddressColumn = शून्य, bool? hasHeaderRow = शून्य, तार returnUrl = शून्य)
{
   अगर (तार.Isnullorempty(fileFullPath))
       फेंकना नया अपवाद("त्रुटि: fileFullPath आवश्यक है");
   अगर (तार.Isnullorempty(apiKey))
       फेंकना नया अपवाद("त्रुटि: एपीकेआई की आवश्यकता है");

   वर fi = नया फाइल के बारे में(fileFullPath);
   वर fileContents = File.Readallbytes(fi.FullName);
   वर fileName = fi.Name;

   उरी uri = नया उरी(@"https://bulkapi.zerobounce.net/v2/scoring/sendfile");

   का उपयोग करते हुए (वर client = नया Httpclient())
   का उपयोग करते हुए (वर request = नया Httprequestmessage(HttpMethod.Post, uri))
   {
       Multipartformdatacontent multiPartContent = नया Multipartformdatacontent();
       Bytearraycontent byteArrayContent = नया Bytearraycontent(fileContents);
       byteArrayContent.Headers.जोड़ना("सामग्री प्रकार", "text / सीएसवी");
       multiPartContent.जोड़ना(byteArrayContent, "फाइल", fileName);
       multiPartContent.जोड़ना(नया Stringcontent(apiKey), "एपीआई कुंजी");
       multiPartContent.जोड़ना(नया Stringcontent(emailAddressColumn.तार()), "email_address_column");
       अगर (ipAddressColumn != शून्य)
           multiPartContent.जोड़ना(नया Stringcontent(ipAddressColumn.तार()), "ip_address_column");
       अगर (hasHeaderRow != शून्य)
           multiPartContent.जोड़ना(नया Stringcontent((hasHeaderRow == सच) ? "सच" : "असत्य"), "has_header_row");
       अगर (returnUrl != शून्य)
           multiPartContent.जोड़ना(नया Stringcontent(returnUrl.तार()), "return_url");

       request.Content = multiPartContent;

       का उपयोग करते हुए (वर response = इंतजार client.Sendasync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None).Configureawait(असत्य))
       {
           वर content = इंतजार response.Content.Readasstringasync();

           अगर (response.IsSuccessStatusCode == असत्य)
           {
               वर error = $"StatusCode = {(int) response.StatusCode}, सामग्री = {सामग्री}";
               फेंकना नया अपवाद(error);
           }

           वापसी JsonConvert.Deserializeobject<Sendfilestatus>(content);
       }
   }
}
   

 <?php

$ कर्ल = curl_init();

curl_setopt_array($ कर्ल, सरणी(
 CURLOPT_URL => "https://bulkapi.zerobounce.net/v2/scoring/sendfile",
 CURLOPT_RETURNTRANSFER => सच,
 CURLOPT_ENCODING => "",
 CURLOPT_MAXREDIRS => 10,
 CURLOPT_TIMEOUT => 30,
 CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
 CURLOPT_CUSTOMREQUEST => "पद",
 CURLOPT_POSTFIELDS => "------ WebKitFormBoundary7MA4YWxkTrZu0gW सामग्री-विवाद: फ़ॉर्म-डेटा; नाम ="एपीआई कुंजी"रिप्लेविथियॉर्स ------ WebKitFormBoundary7MA4YWxkTrZu0gW सामग्री-विवाद: फ़ॉर्म-डेटा; नाम ="email_address_column"रीप्लेविथियॉर्स ------ WebKitFormBoundary7MA4YWxkTrZu0wW--",
 CURLOPT_HTTPHEADER => सरणी(
   "पोस्टमैन-टोकन: fae6714d-dc09- 4 e08-b50d-c97030603b61",
   "कैश-कंट्रोल: नो-कैश",
   "कंटेंट-टाइप: मल्टीपार्ट / फॉर्म-डेटा; बाउंड्री = ---- WebKitFormBoundary7MA4YWxkTrZu0gW"
 ),
));

$ प्रतिक्रिया = curl_exec($ कर्ल);
$ अं = curl_error($ कर्ल);

curl_close($ कर्ल);

अगर ($ अं) {
 गूंज "CURL त्रुटि #:" . $ अं;
} अन्य {
 गूंज $ प्रतिक्रिया;
}
?>
   

 Okhttpclient client = नया Okhttpclient();

 मीडिया का स्वरूप mediaType = मीडिया का स्वरूप.पार्स("मल्टीपार्ट / फॉर्म-डेटा; सीमा = ---- WebKitFormBoundary7MA4YWxkTrZu0gW");
 Requestbody body = Requestbody.सर्जन करना(mediaType, "------Webkitformboundary7ma4ywxktrzu0gw
सामग्री-स्वभाव: form-data; name="एपीआई कुंजी"

replacewithyours
------Webkitformboundary7ma4ywxktrzu0gw
सामग्री-स्वभाव: form-data; name="email_address_column"

replacewithyours
------Webkitformboundary7ma4ywxktrzu0gw--");
 निवेदन request = नया निवेदन.निर्माता()
   .यूआरएल("https://bulkapi.zerobounce.net/v2/scoring/sendfile")
   .पद(body)
   .addheader("सामग्री प्रकार", "मल्टीपार्ट / फॉर्म-डेटा; सीमा = ---- WebKitFormBoundary7MA4YWxkTrZu0gW")
   .addheader("कैश नियंत्रण", "नहीं-कैश")
   .addheader("डाकिया-टोकन", "25 6 d608ba- cb5- 4 c8c- 88 d7-d47276c67d8e")
   .निर्माण();
 
 प्रतिक्रिया response = client.नई कॉल(request).निष्पादित();
   

 आयात http.client

 conn = http.client.HTTPConnection("bulkapi, zerobounce, शुद्ध")
 
 payload = "------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="एपीआई कुंजी"

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

replacewithyours
------WebKitFormBoundary7MA4YWxkTrZu0gW--"
 
 headers = {
     'सामग्री प्रकार': "मल्टीपार्ट / फॉर्म-डेटा; सीमा = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
     'कैश-नियंत्रण': "नहीं-कैश",
     'डाकिया-टोकन': "bc455eda- 9884-417 ई-b16f- 3 a5fef3f7540"
     }
 
 conn.request("पद", "वी 2, sendfile", payload, headers)
 
 res = conn.getresponse()
 data = res.read()
 
 छाप(data.decode("utf- 8"))
   
   

 आयात आधार

 चलो headers = [
   "सामग्री प्रकार": "मल्टीपार्ट / फॉर्म-डेटा; सीमा = ---- WebKitFormBoundary7MA4YWxkTrZu0gW",
   "कैश नियंत्रण": "नहीं-कैश",
   "डाकिया-टोकन": "2 f68fcc3-d9b6- 458 बी b613- 56 f6a03e6617"
 ]
 चलो parameters = [
   [
     "नाम": "एपीआई कुंजी",
     "मूल्य": "replacewithyours"
   ],
   [
     "नाम": "email_address_column",
     "मूल्य": "replacewithyours"
   ]
 ]
 
 चलो boundary = "---- WebKitFormBoundary7MA4YWxkTrZu0gW"
 
 वर body = ""
 वर error: Nserror? = शून्य
 के लिये param में parameters {
   चलो paramName = param["नाम"]!
   body += "--(boundary)
"
   body += "सामग्री-विवाद: फ़ॉर्म-डेटा; नाम ="(paramName)""
   अगर चलो filename = param["फ़ाइल का नाम"] {
     चलो contentType = param["सामग्री प्रकार"]!
     चलो fileContent = तार(contentsOfFile: filename, encoding: तार.एन्कोडिंग.utf8)
     अगर (error != शून्य) {
       छाप(error)
     }
     body += "; फ़ाइल नाम ="(filename)"
"
     body += "सामग्री-प्रकार: (contentType)

"
     body += fileContent
   } अन्य अगर चलो paramValue = param["मूल्य"] {
     body += "

(paramValue)"
   }
 }
 
 चलो request = Nsmutableurlrequest(url: NSURL(string: "https://bulkapi.zerobounce.net/v2/scoring/sendfile")! जैसा यूआरएल, 
                                       cachePolicy: .useProtocolCachePolicy,
                                       timeoutInterval: 10.0)
 request.httpMethod = "पद"
 request.allHTTPHeaderFields = headers
 request.httpBody = postData जैसा डेटा
 
 चलो session = Urlsession.shared
 चलो dataTask = session.datatask(with: request जैसा URLRequest, completionHandler: { (data, response, error) -> शून्य में
   अगर (error != शून्य) {
     छाप(error)
   } अन्य {
     चलो httpResponse = response जैसा? Httpurlresponse
     छाप(httpResponse)
   }
 })
 
 dataTask.बायोडाटा()
   

// फ़ाइल नमूना भेजें # आयात के लिए VB या C # भाषा का चयन करें  <Foundation/Foundation.h>

NSDictionary *headers = @{ @"सामग्री प्रकार": @ "मल्टीपार्ट / फॉर्म-डेटा; सीमा = ---- वेबकीटफॉर्मबाउंडरी 7MA4YWxkTrZu0gW",
                           @ "कैश नियंत्रण": @ "नहीं-कैश",
                           @ "डाकिया-टोकन": @ "92 624 c5b06e- एफ 44 e5-bd86-f537bc6cef67" };
NSArray *parameters = @[ @{ @ "नाम": @"एपीआई कुंजी", @ "मूल्य": @ "replacewithyours" },
                         @{ @ "नाम": @ "email_address_column", @ "मूल्य": @ "replacewithyours" } ];
NSString *boundary = @ "---- WebKitFormBoundary7MA4YWxkTrZu0gW";

NSError *error;
NSMutableString *body = [NSMutableString string];
के लिये (NSDictionary *param में parameters) {
   [body appendFormat:@"--%@
", boundary];
   अगर (param[@"फ़ाइल का नाम"]) {
       [body appendFormat:@ "सामग्री-विवाद: फ़ॉर्म-डेटा; नाम ="%@ "; फ़ाइल नाम ="%@"
", परम [@"name"], परम [@"fileName"]];
       [body appendFormat:@"Content-Type: %@

", परम [@"contentType"]];
       [body appendFormat:@"%@", [NSString stringWithContentsOfFile:param[@"फ़ाइल का नाम"] encoding:NSUTF8StringEncoding error:&error]];
       अगर (error) {
           NSLog(@"%@", error);
       }
   } अन्य {
       [body appendFormat:@ "सामग्री-विवाद: फ़ॉर्म-डेटा; नाम ="%@"

", परम [@"name"]];
       [body appendFormat:@"%@", param[@ "मूल्य"]];
   }
}
[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:@"पद"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];

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

//N/A
   

समापन बिंदु प्रतिक्रिया

सफल प्रतिक्रिया

      
{
 "सफलता": सच,
 "संदेश": "फ़ाइल स्वीकृत",
 "फ़ाइल का नाम": "आपकी फ़ाइल name.csv",
 "file_id": "aaaaaaaa-zzzz-xxxx-yyyy- 5003727 fffff"
}
   

त्रुटि प्रतिक्रिया

      
   {
     "सफलता": असत्य,
     "संदेश": [
         "त्रुटि संदेश"
     ]
 }