Upload zip αρχείων. Στοιχεία Σύνδεσης Η κλήση του REST Service για το upload zip αρχείων προϋποθέτει

Σχετικά έγγραφα
Έκδοση Εγγράφου: 1.2- Ημερομηνία Τελευταίας Ενημέρωσης: 21 Ιανουαρίου Upload zip αρχείων-

Paybybank RESTful API GUIDE

ΥΠΗΡΕΣΙΑ ΥΠΟΒΟΛΗΣ ΠΙΣΤΟΠΟΙΗΤΙΚΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΕΛΕΓΧΩΝ API Επικοινωνίας με ΓΓΠΣ. Γ.Γ.Π.Σ. : Ομάδα Ευέλικτης Ανάπτυξης 5/2012

PayByBank RESTful API GUIDE

sendsms.gr HTTP Service

Χειμερινό εξάμηνο Διδάσκοντες: Ν. Παπασπύρου, Β. Βεσκούκης, Κ. Σαΐδης

PayByBank RESTful API

ιαδικτυακές Εφαρµογές

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

PayByBank RESTful API v8.0

Αντικειμενοστρεφής Προγραμματισμός

ΟΠΣ-ΕΣΠΑ : Ειδική Υπηρεσία Ολοκληρωμένου Πληροφοριακού Συστήματος

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ IRIS (Τελευταία ενημέρωση: 10/9/2015)

Αρχεία και Ρεύματα. Αρχεία

Περιγραφή των Web Services της δράσης

ΙΕΥΘΥΝΣΗ ΠΛΗΡΟΦΟΡΙΚΗΣ Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ INTERNET REPORTING INFORMATION SYSTEM (IRIS)

SOAP API. Table of Contents

άσκηση Hide UI Elements 7.2 Try and Catch

ιαδικτυακές Εφαρµογές Πραγµατικού Χρόνου µε Java

ΟΔΗΓΟΣ ΔΙΑΣΥΝΔΕΣΗΣ για το Έργο «Ανάπτυξη Πλατφόρμας Παροχής Υπηρεσιών Αποστολής και Λήψης Σύντομων Μηνυμάτων»

Threads. Components. (Download File My.Computer.Network.DownloadFile(" files/list.txt", "C:\Temp\list.

Μετατροπή χαρακτήρων ASCII σε ακέραιο αριθµό (atoi) & Άνοιγµα αρχείου µέσα από τo QtSPIM, διάβασµα, και αποθήκευση του περιεχοµένου του στη µνήµη

File Handling & I/O ΓΛΩΣΣΙΚΉ ΤΕΧΝΟΛΟΓΊΑ

Δικτυοκεντρικά Πληροφοριακά Συστήματα

Εργαστήριο #10 (Ε10) 1

Οδηγός Εφαρμογής του Μ.Ι. στις αεροπορικές μετακινήσεις των νησιωτών.

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

7.2 Μηνύµατα Συστήµατος Αναφορές Μηνυµάτων Ανάκτηση Αναφορών Παράµετροι αναφορών... 10

Προγραμματισμός ΙΙ (Java) 4. Διαχείριση εξαιρέσεων

Φροντιςτήριο. Linked-List

HTTP API v1.6 SMSBOX.GR HTTP API v

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Πίνακας Εικόνων. 22/04/2014 Έκδοση 3.0.1

PHP 2. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Μετατροπή χαρακτήρων ASCII σε αριθμό (atoi) & διάβασμα, και αποθήκευση του περιεχομένου του στη μνήμη. (Διάλεξη. Πανεπιστήμιο Κύπρου

Το αίτημα (http request) για την αποστολή μηνύματος γίνεται στον server μας στο URL με τις ακόλουθες μεταβλητές.

Εφαρµογές διαδικτύου µε PHP

Ασφάλεια, Διαθεσιμότητα και Ταχύτητα για τις Web Εφαρμογές

Χειρισµός Σφαλµάτων. Γρηγόρης Τσουµάκας. Τµήµα Πληροφορικής, Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης. Έκδοση:

ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.1

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

Διαβάστε στο Παράρτημα Α.1 πώς θα γράψετε ένα πρόγραμμα PHP για την παροχή δεδομένων σε μορφή διαφορετική από την HTML.

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

Αρχεία κειμένου και η VB.NET

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

Αρχεία & Ρεύματα ΑΡΧΕΙΑ & ΡΕΥΜΑΤΑ. Γεώργιος Παπαϊωάννου ( ) gepap@aueb.gr

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Navins Web Service Documentation

Σύγχρονα εργαλεία και τεχνολογίες ανάπτυξης I.S. Το Microsoft.NET

Προγραμματισμός για το Web

Εγχειρίδιο Συναρτήσεων. Socket *sopen(const int type, const int protocol, const char *host, const char *service)

Προγραμματισμός Ιστοσελίδων (Web Design)

ΑΝΑΡΤΗΤΕΑ ΣΤΟ ΔΙΑΔΙΚΤΥΟ

ΚΕΡΑΜΟΠΟΥΛΟΣ ΕΥΚΛΕΙΔΗΣ

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Ηλεκτρονικό Ταχυδρομείο - SMTP

Τ.Ε.Ι. ΛΑΜΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ

Μηχανή αναζήτησης βασισμένη σε AJAX και Soundex. Πτυχιακή Εργασία

11β Δομικά πρότυπα σχεδίασης

Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Εργαλεία ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ FILE & PROCESS HANDLING

MusicOnCloud: Μια cloud-based υπηρεσία online streaming μουσικής

7 f i n a l S t r i n g mytelephone=" " ; 8 10 {

Δρ. Δημήτριος Α. Κουτσομητρόπουλος. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Α.Τ.Ε.Ι. Πάτρας

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

Διδάσκων: Παναγιώτης Ανδρέου

NetBeans και σχετικά προγράμματα. Κακαρόντζας Γεώργιος Κέντρο Αριστείας Ανοιχτού Λογισμικού ΑΠΘ 1ο Θερινό Σχολείο Κώδικα

Navins Web Service Documentation

Dynamic types, Lambda calculus machines Section and Practice Problems Apr 21 22, 2016

Φόρμες. Γενικοί κανόνες. Η ετικέτα <form>

ΕΠΛ 012. JavaScripts

Βασίλης Χριστοφίδης Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία: 21 Σεπτεµβρίου 2012

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 10η Διάλεξη: Web Services

Ιόνιο Πανεπιστήµιο. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα Θ. Υπηρεσίες Internet. ρ. Ε. Μάγκος

(C) 2010 Pearson Education, Inc. All rights reserved.

Βασικά της γλώσσας JAVA

Εφαρµογές και Περιβάλλοντα Εργασίας AJAX

Προγραμματισμός Ι. Πίνακες, Δείκτες, Αναφορές και Δυναμική Μνήμη. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

HY150a Φροντιστήριο 3 24/11/2017

ΗΥ-150 Programming. Assignment 3. HY150 Programming, University of Crete

Από τον κατάλογο Web επιλέγουμε το Page, οπότε στο κυρίως μέρος της οθόνης εμφανίζονται οι σελίδες τις οποίες έχουμε δικαίωμα να ενημερώσουμε.

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Γλωσσική Τεχνολογία. HTML/XML Processing HTTP Services

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Προγραμματισμός ΙΙ (Java) 6. Διαχείριση δεδομένων

wget --post-file meme.jpg :9646

Αντικειμενοστρεφής Προγραμματισμός

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών Α.Ε.Ι.

Γράψιμο και Διάβασμα σε φύλλο του Excel

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Σι θα δούμε σε αυτό το μάθημα;

Προγραμματισμός Παγκόσμιου Ιστού

ΕΙΣΟ ΟΣ-ΕΞΟ ΟΣ Ε ΟΜΕΝΩΝ

ΗΜΥ 213 Εργαστήριο Οργάνωσης Ηλεκτρονικών Υπολογιστών και Μικροεπεξεργαστών

MUM ATHENS, GREECE 2015

, Evaluation of a library against injection attacks

Προγραμματισμός Διαδικτύου

PortSip Softphone. Ελληνικά Ι English 1/20

Υπηρεσίες Χαρτών Ιστού WMS. Ανάλυση των δυνατοτήτων και εφαρμογή στον ελληνικό χώρο.

ASPA: A translator from ASP to PHP

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java II

Transcript:

Έκδοση Εγγράφου: 1.3 Ημερομηνία Τελευταίας Ενημέρωσης: 14/06/2016 (Υποστήριξη TLS1.2, προαπαιτούμενο framework 4.5 ή μεγαλύτερο) Upload zip αρχείων Στοιχεία Σύνδεσης Η κλήση του REST Service για το upload zip αρχείων προϋποθέτει 1. Method HTTP POST στο Url (https://www1.gsis.gr/myf/oltp/api/post/file) 2. Ιδιότητες του Request a. ContentType : multipart/form-data; b. Authorization Header με Basic Authentication σε Base64String με username και password τα στοιχεία του Token που έχουν εκδοθεί 3. Ιδιότητες αρχείου a. Content-Disposition: form-data; name="file"; filename="filename", όπου filename: το όνομα του αρχείου b. Content-Type: application/octet-stream Επιστρεφόμενη Τιμή Το αποτέλεσμα της επιτυχημένης κλήσης είναι string xml της μορφής <result> <id>το ID του πακέτου</id> <status>ok PROCESSING FAIL</status> <errors> <error>error Message 1</error> <error> Error Message 2</error>. </errors> </result>

Παράδειγμα κλήσης Στη συνέχεια παρατίθεται κώδικας C# για κλήση του REST service και ανέβασμα του.zip αρχείου //Libraries /* using System; using System.Net; using System.IO; using System.Xml.Linq; */ //Tls 1.2 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //update 1.3 //Custom parameters string url = "REST_SERVICE_URL"; string sauthorization = "USERNAME:PASSWORD"; string filename = "FILENAME.zip"; string filepath = @"FILE_PATH" + filename; //Identificate separator string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x"); //Encoding byte[] boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n"); //Creation and specification of the request HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url); wr.contenttype = "multipart/form-data; boundary=" + boundary; wr.method = "POST"; wr.keepalive = true; wr.credentials = System.Net.CredentialCache.DefaultCredentials; //Authentication byte[] toencodeasbytes = System.Text.ASCIIEncoding.ASCII.GetBytes(sAuthorization);

string returnvalue = System.Convert.ToBase64String(toEncodeAsBytes); wr.headers.add("authorization: Basic " + returnvalue); //Writting of the file Stream rs = wr.getrequeststream(); rs.write(boundarybytes, 0, boundarybytes.length); byte[] formitembytes = System.Text.Encoding.UTF8.GetBytes(filePath); rs.write(formitembytes, 0, formitembytes.length); rs.write(boundarybytes, 0, boundarybytes.length); string headertemplate = "Content-Disposition: form-data; name=\"0\";filename=\"1\"\r\ncontent-type: 2\r\n\r\n"; string header = string.format(headertemplate, "file", filename, "application/octet-stream"); byte[] headerbytes = System.Text.Encoding.UTF8.GetBytes(header); rs.write(headerbytes, 0, headerbytes.length); FileStream filestream = new FileStream(filePath, FileMode.Open, FileAccess.Read); byte[] buffer = new byte[4096]; int bytesread = 0; while ((bytesread = filestream.read(buffer, 0, buffer.length))!= 0) rs.write(buffer, 0, bytesread); filestream.close(); byte[] trailer = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n"); rs.write(trailer, 0, trailer.length); rs.close(); rs = null; WebResponse wresp = null; try //Get the response wresp = wr.getresponse(); Stream stream2 = wresp.getresponsestream(); StreamReader reader2 = new StreamReader(stream2); string responsedata = reader2.readtoend(); //Parse xml XDocument xdoc = XDocument.Parse(responseData);

if (xdoc.element("result").element("status").value == "OK") Console.WriteLine("OK. ID: " + xdoc.element("result").element("id").value); else if (xdoc.element("result").element("status").value == "PROCESSING") Console.WriteLine("PROCESSING. ID: " + xdoc.element("result").element("id").value); else if (xdoc.element("result").element("status").value == "FAIL") Console.WriteLine("FAIL. ID: " + xdoc.element("result").element("id").value + ". See errors."); catch (Exception ex) string s = ex.message; finally if (wresp!= null) wresp.close(); wresp = null; wr = null; Console.ReadLine();

Κατάσταση Απεσταλμένων Αρχείων Στοιχεία Σύνδεσης Η κλήση του REST Service για το upload zip αρχείων προϋποθέτει 1. Method HTTP GET στο Url (https://www1.gsis.gr/myf/oltp/api/post/status/<id του πακέτου>) a. Παράμετρος id που αντιστοιχεί στο ID του πακέτου που έχει επιστραφεί κατά την αποστολή του αρχείου όπως περιγράφηκε πιο πάνω 2. Ιδιότητες του Request a. Authorization Header με Basic Authentication σε Base64String με username και password τα στοιχεία του Token που έχουν εκδοθεί Επιστρεφόμενη Τιμή Το αποτέλεσμα της επιτυχημένης κλήσης είναι string xml της μορφής <result> <id>το ID του πακέτου</id> <status>ok PROCESSING FAIL</status> <errors> <error>error Message 1</error> <error> Error Message 2</error>. </errors> </result> Παράδειγμα κλήσης Στη συνέχεια παρατίθεται κώδικας C# για κλήση του REST service

//Libraries /* using System; using System.Net; using System.IO; using System.Xml.Linq; */ //Tls 1.2 System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; //update 1.3 //Custom parameters string url = "REST_SERVICE_URL"; string sauthorization = "USERNAME:PASSWORD"; string id = "ID_OF_UPLOAD";//ID from upload service: get it from xdoc.element("result").element("id").value //Creation and specification of the request System.Net.HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url + id); wr.method = "GET"; wr.keepalive = true; wr.credentials = System.Net.CredentialCache.DefaultCredentials; //Authentication byte[] toencodeasbytes = System.Text.ASCIIEncoding.ASCII.GetBytes(sAuthorization); string returnvalue = System.Convert.ToBase64String(toEncodeAsBytes); wr.headers.add("authorization: Basic " + returnvalue); WebResponse wresp = null; try //Get the response wresp = wr.getresponse(); Stream stream2 = wresp.getresponsestream(); StreamReader reader2 = new StreamReader(stream2); string responsedata = reader2.readtoend(); //Parse xml XDocument xdoc = XDocument.Parse(responseData);

if (xdoc.element("result").element("status").value == "OK") Console.WriteLine("OK. ID: " + xdoc.element("result").element("id").value); else if (xdoc.element("result").element("status").value == "PROCESSING") Console.WriteLine("PROCESSING. ID: " + xdoc.element("result").element("id").value); else if (xdoc.element("result").element("status").value == "FAIL") Console.WriteLine("FAIL. ID: " + xdoc.element("result").element("id").value + ". See errors."); catch (Exception ex) Console.WriteLine("Something went wrong: " + ex.message); finally if (wresp!= null) wresp.close(); wresp = null; wr = null; Console.ReadLine();