Ciao a tutti,
devo creare una web service per ricevere un immagine che un mio collega invia da un APP MOBILE (in java) al mio server (microsoft azure).
Per fare la web service ho utilizzato e provato varie pagine fatte sia in asp classico che in .net (c#).
Le mie pagine funzionano correttamente se invio i dati da un form.
Il dubbi sul non funzionamento sono tanti, non so se non funziona per causa mia o sua.
Per fare dei test abbiamo usato anche un servizio online ovvero inviando i dati a http://httpbin.org/post e leggendo un json con tutto quello inviato.
il primo dubbio mi viene sul tipo di content
io dal form li in invio in "Content-Type": "multipart/form-data;"
mentre lui li invia in "Content-Type": "application/x-www-form-urlencoded"
lui mi dice che invia i dati in base64 ma ho visto che anche la risposta del mio form è in base64
"photo": "data:image/jpeg;base64.....
mi viene naturalmente il dubbio come detto che la mia web service non sia corretta, ma oltre a degli script miei ne ho presi diversi in rete per scrivere file dopo un post, gli script erano anche in php, uno addirittura scrive qualsiasi byte senza andare a vedere il nome della variabile , ma anche in questo caso nulla
in asp.net ho creato una pagina che faccio questo
codice:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
public partial class ApiMobile_UploadFile : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
HttpPostedFile file = Request.Files["photo"];
if (file != null && file.ContentLength > 0)
{
string fname = Path.GetFileName(file.FileName);
file.SaveAs(Server.MapPath(Path.Combine("/public/", fname)));
testo.InnerHtml = "inserito";
}
else
{
testo.InnerHtml = "Non è arrivato nulla";
}
}
}
ma la risposta che lui ha è sempre "Non è arrivato nulla" come se non arrivassero i byte, mentre funziona se la uso dopo una pagina con il form.
non so se è utile ma vi scrivo anche lui in java che mi dice che fa
codice:
public static String getStringImage(Bitmap bmp){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String encodedImage = Base64.encodeToString(imageBytes, Base64.DEFAULT);
return encodedImage;
}
ha seguito questo metodo
https://developer.android.com/refere...il/Base64.html
non so se le informazioni che vi ho dato sono abbastanza.
potete darmi qualche consiglio su cosa posso fare io per recuperare i dati?
Grazie in anticipo