2013-02-24 121 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

相关问题