2016-06-29 6 views
0

Erste Buchung! Ich habe mir in diesem speziellen Fall den Kopf gebrochen. Ich habe eine Web-Anwendung, die eine Datei auf eine Web-API hochladen muss und eine SVG-Datei (in einer Zeichenfolge) zurück erhalten.So lesen Sie Daten aus dem WebClient.UploadData

Die Web-App lädt die Datei wie folgt:

using (var client = new WebClient()) 
      { 
       var response = client.UploadFile(apiUrl, FileIGotEarlierInMyCode); 

       ViewBag.MessageTest = response.ToString(); 
      } 

Above funktioniert, aber dann kommen wir zum API-Teil: Wie greife ich auf die hochgeladene Datei? Pseudo-Code:

public string Post([FromBody]File f) 
     { 
      File uploadedFile = f; 

      String svgString = ConvertDataToSVG(uploadedFile); 
      return s; 
     } 

Mit anderen Worten: Wie lade ich/Senden Sie eine XML-Datei auf meiner Web-api, verwenden Sie/manipulieren, um sie dort und andere Daten zurückschicken?

Vielen Dank im Voraus! Nick

PS: Ich habe versucht, diese Antwort: Accessing the exact data sent using WebClient.UploadData on the server Aber mein Code nicht kompilieren nicht auf Request.InputStream.

Antwort

0

Der Grund Request.InputStream nicht für Sie arbeiten, ist, dass die Antrag Eigenschaft verschiedene Arten von Anfrage Objekte verweisen können, je nachdem, welche Art von ASP.NET Lösung Sie entwickeln. Es gibt:

Sie verwenden Web-API, also HttpRequestMessage ist es. Hier ist, wie Sie die rohen Anfrage-Bytes mit dieser Klasse lesen:

var data = Request.Content.ReadAsByteArrayAsync().Result;