2013-02-24 117 views
0

我有android應用程序向asp.net發出Http POST請求頁面。如何獲取POST請求內容並使用c#.NET保存它?

我想實現接收這個請求並將它的內容保存到一個文件(這是文件上傳)的asp.net頁面。

給予我的樣本將是非常讚賞

+0

從Web API開始:http: //www.asp.net/web-api – 2013-02-24 08:06:32

回答

0

使用Request對象在asp.net檢索發佈信息的頁面。

如:

Request.Form["NameOfVar"] 
1

這裏是我如何做到這一點,在從Android, 關於簡單的參數接收圖像asp.net應用程序,我收到這樣的

context.Request["Yourparameter"] 


public class RecieveMail : IHttpHandler 
{ 
    private string _emailAdressTo; 
    private string _imageUrl; 
    private EmailFactory _emailFactory; 

    public void ProcessRequest(HttpContext context) 
    { 
     ImageFactory factory = new ImageFactory(context); 
     try 
     { 
      _imageUrl = factory.SaveImage("uploaded"); 

      if (string.IsNullOrEmpty(context.Request["from"]) || string.IsNullOrEmpty(context.Request["to"])) return; 

      _emailFactory = new EmailFactory(_imageUrl); 
      if (_emailFactory.SendMail(context.Request["from"], context.Request["to"])) 
       context.Response.Write(!factory.DeleteImage(_imageUrl) ? "Email sent" : "Image deleted"); 
     } 
     catch (Exception ex) 
     { 
      context.Response.Write(" error converting " + ex.Message); 
     } 
    } 
    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    }  
} 

//這裏是圖片保存工廠

public class ImageFactory 
{ 
    private readonly HttpContext _context; 
    private Image _image; 

    public ImageFactory(HttpContext context) 
    { 
     _context = context; 
    } 

    /// <summary> 
    /// Get image by name from post 
    /// </summary> 
    /// <param name="ctxImageParamName">image that have been posted in email</param> 
    /// <returns></returns> 
    public string SaveImage(string ctxImageParamName) 
    { 
     if (string.IsNullOrEmpty(_context.Request[ctxImageParamName])) return null; 
     string url = GenerateImagePath("FrameMe"); 
     ByteArrayToImageAndSave(Decode(_context.Request[ctxImageParamName]), url); 
     return url; 
    } 

    public bool DeleteImage(string url) 
    { 
     try 
     { 
      if (!File.Exists(url)) return false; 
      File.Delete(url); 
      return true; 
     } 
     catch (Exception ex) 
     { 
      return false; 
     }  
    } 

    private string GenerateImagePath(string directory) 
    { 
     return _context.Server.MapPath(string.Format("~/Images/{1}/Image1_{0}.jpg", DateTime.Now.ToString("ddMMyyyyHHmmss"), directory)); 
    } 

    private void ByteArrayToImageAndSave(byte[] byteArrayIn, string imageUrl) 
    { 
     try 
     { 
      MemoryStream ms = new MemoryStream(byteArrayIn); 
      _image = Image.FromStream(ms); 
      _image.Save(imageUrl, new ImageFormat(Guid.NewGuid())); 
      _image.Dispose(); 
     } 
     catch (Exception ex) 
     { 
      _image = null; 
     } 
    } 

    private byte[] Decode(string str) 
    { 
     return Convert.FromBase64String(str); 
    } 
} 
+0

請求的URL應該是什麼? – Adham 2013-02-24 11:50:59

+0

你必須轉換64位圖像字符串, – IamStalker 2013-02-24 12:23:38

相關問題