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



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

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

Paybybank RESTful API GUIDE

PayByBank RESTful API GUIDE

sendsms.gr HTTP Service

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

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

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

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

PayByBank RESTful API

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

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

PayByBank RESTful API v8.0

SOAP API. Table of Contents

HTTP API v1.6 SMSBOX.GR HTTP API v

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

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

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

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

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

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

Apache Jmeter. Αν θέλετε να τεστάρετε μία υφιστάμενη web εφαρμογή π.χ. το Java Petstore

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

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

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

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

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

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

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

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

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

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

ΔΝΓΔΙΚΣΙΚΔ ΑΠΑΝΣΗΔΙ 3 εο ΓΡΑΠΣΗ ΔΡΓΑΙΑ

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

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

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

A. Υπόχρεοι, Περιεχόμενο και Προθεσμίες

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

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

Συχνές Ερωτήσεις και Απαντήσεις σχετικά με την υπηρεσία Γνωστοποίησης Συναλλαγών (Transaction Reporting System TRS) της Επιτροπής Κεφαλαιαγοράς

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

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

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

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

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

A2. Θα υπάρχει όριο αξίας πάνω από το οποίο θα ισχύει η υποχρέωση υποβολής; Όλες οι συναλλαγές ανεξαρτήτως αξίας πρέπει να υποβάλλονται.

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

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

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

Τεχνολογίες ιαδικτύου

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

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

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

Navins Web Service Documentation

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

Navins Web Service Documentation

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

Εγχειρίδιο Χρήσης-Οδηγός Εκπαίδευσης Χρηστών. - Δήμος Δέλτα - Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

ΕΓΚΑΤΑΣΤΑΣΗ ΣΥΝΔΕΣΗΣ MS L2TP VPN

A. Υπόχρεοι, Περιεχόμενο και Προθεσμίες

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

Στοιχεία Προγραμματισμού Σε Γραφικό Περιβάλλον Φύλλο εργασίας 1 ο

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

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

Εργαστήριο Wireshark: HTTP

Ενότητα 2: HTTP, Clients και Servers (II) (Web, το θεμέλιο του Σημασιολογικού Ιστού)

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

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

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

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

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

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

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

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

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

Οδηγίες υποβολής αιτήματος πελάτη προς τμήμα υποστήριξης Orthology

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

Διαβούλευση για την ηλεκτρονική υποβολή αποδείξεων

Επεξήγηση τεχνικών όρων Περιοχή Πρόσβασης Χρήστη Σύνδεση στο σύστημα Αναζήτηση Φυλλομέτρηση Αποσύνδεση...

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

Joomla! with K2 - User Guide

Συχνές Ερωτήσεις και Απαντήσεις σχετικά με την υπηρεσία Γνωστοποίησης Συναλλαγών (Transaction Reporting System TRS) της Επιτροπής Κεφαλαιαγοράς

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

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

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

Εισαγωγή στις Σελίδες Εξυπηρετητή Java Java Server Pages (JSP)

A. Υπόχρεοι, Περιεχόμενο και Προθεσμίες

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151)

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Προγραμματισμός Η/Υ

, Evaluation of a library against injection attacks

Βασικά Θέματα Επικοινωνίας. Κατανεμημένα Συστήματα 1

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

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

Νέες διευκρινίσεις για τις συγκεντρωτικές - Σε πιλοτική φάση δοκιμών η Μηνιαία Κατάσταση Πελατών Προμηθευτών και Συναλλαγών από τη Γ.Γ.Π.Σ.

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

ΔΙΑΔΙΚΑΣΙA ΜΕΤΑΦΟΡΑΣ ΥΛΙΚΟΥ ΜΑΘΗΜΑΤΟΣ ΑΠΟ BLACKBOARD VISTA ΣΕ OPEN ECLASS

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

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

Transcript:

Έκδοση Εγγράφου: 1.2- Ημερομηνία Τελευταίας Ενημέρωσης: 21 Ιανουαρίου 2014- Upload zip αρχείων- Στοιχεία Σύνδεσης Η κλήση του REST Service για το upload zip αρχείων προϋποθέτει 1. Έκδοση ψευδοκωδικών-token για τον υπόχρεο (για τα νοµικά πρόσωπα πρέπει να µπει ο νόµιµος εκπρόσωπος και να αναλάβει τον ανάλογο ρόλο) από την εφαρµογή: https://www1.gsis.gr/sgsisapps/tokenservices 2. Method HTTP POST στο Url (https://www1.gsis.gr/myf/oltp/api/post/file) 3. Ιδιότητες του Request a. ContentType : multipart/form-data; b. Authorization Header µε Basic Authentication σε Base64String µε username και password τα στοιχεία του Token που έχουν εκδοθεί 4. Ιδιότητες αρχείου 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>

Σχετικά µε το status PROCESSING: Στο web service γίνεται µόνο έλεγχος ότι έφτασε το αρχείο (δεν υπάρχει πρόβληµα να βάζετε συνέχεια το ίδιο filename) και ότι είστε authorised για την κλήση. Το σύστηµα δίνει ένα µοναδικό για κάθε χρήστη ID υποβολής, εισάγει το xml payload σε ουρά και δεν κάνει στη γενική περίπτωση άµεσα validation, αλλά απαντάει processing και το ID του πακέτου. Το processing µπορεί να πάρει από δευτερόλεπτα ως µερικές ώρες, ανάλογα µε το φόρτο και τον αριθµό εγγραφών των υποβληθέντων αρχείων. Σε κάθε περίπτωση κρατιέται ηµερολόγιο µε το status όλων των υποβολών και µπορεί να το δει ο υπόχρεος στην εφαρµογή (site). Δίνεται δυνατότητα ερώτησης status των κλήσεων µέσω web service, δείτε παρακάτω. Παράδειγμα κλήσης Στη συνέχεια παρατίθεται κώδικας C# για κλήση του REST service και ανέβασµα του.zip αρχείου //Libraries /* using System; using System.Net; using System.IO; using System.Xml.Linq; */ //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. Επιτυχή κλήση για upload zip αρχείου όπως παραπάνω, µε επιστρεφόµενη τιµή το <ID του πακέτου> 2. Method HTTP GET στο Url (https://www1.gsis.gr/myf/oltp/api/post/status/<id του πακέτου>) a. Παράµετρος id που αντιστοιχεί στο ID του πακέτου που έχει επιστραφεί κατά την αποστολή του αρχείου όπως περιγράφηκε πιο πάνω 3. Ιδιότητες του 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; */ //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();