webapi的返回類型,webapi返回圖片


1.0 首先是返回常用的系統類型,當然這些返回方式不常用到。如:int,string,list,array等。這些類型直接返回即可。

1 public List<string> Get()
2         {
3             List<string> list = new List<string>() { "11","22","33"};
4             return list;
5         }

1.1 用不同的瀏覽器測試發現,返回的類型竟然是不一樣的。如用ie,edge返回的是json,而用chrome,firefox返回的是xml類型。后來才知道原來WebApi的返回值類型是根據客戶端的請求報文頭的類型而確定的。IE在發生http請求時請求頭accpet節點相比Firefox和Chrome缺少"application/xml"類型,由於WebAPI返回數據為xml或json格式,IE沒有發送可接受xml和json類型,所以默認為json格式數據,而Firefox和chrome則發送了可接受xml類型。請參考:http://www.cnblogs.com/lzrabbit/archive/2013/03/19/2948522.html

2.0 返回json類型數據。這也是最常用的方式。

1 public HttpResponseMessage Get()
2         {
3             var jsonStr = "{\"code\":0,\"data\":\"abc\"}";
4             var result = new HttpResponseMessage(HttpStatusCode.OK)
5             {
6                 Content = new StringContent(jsonStr, Encoding.UTF8, "text/json")
7             };
8             return result;
9         }

3.0 返回流類型數據,如:圖片類型。

 1 public HttpResponseMessage Get()
 2         {
 3             var imgPath = System.Web.Hosting.HostingEnvironment.MapPath("~/111.jpg");
 4             //從圖片中讀取byte
 5             var imgByte = File.ReadAllBytes(imgPath);
 6             //從圖片中讀取流
 7             var imgStream = new MemoryStream(File.ReadAllBytes(imgPath));
 8             var resp = new HttpResponseMessage(HttpStatusCode.OK)
 9             {
10                 Content = new StreamContent(imgStream)
11                 //或者
12                 //Content = new ByteArrayContent(imgByte)
13             };
14             resp.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpg");
15             return resp;
16         }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM