webapi的返回类型,webapi返回图片

摘要:
1publicList<string>Get()2{3List<string>list=newList<string˃(){“11”,“22”,“33”};4返回列表;5} 1.1使用不同浏览器进行测试表明,返回的类型不同。如果使用ie,edge返回json,而chrome和firefox返回xml。后来了解到WebApi的返回值类型是根据客户端请求头的类型确定的。当IE中出现http请求时,与Firefox和Chrome相比,请求头中的accpet节点缺少“application/xml”类型。由于WebAPI返回的数据是xml或json格式的,IE不会发送可接受的xml和json类型,因此默认为json格式数据,而Firefox和Chrome则发送可接受xml类型。

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         }

免责声明:文章转载自《webapi的返回类型,webapi返回图片》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇代码注入漏洞Magento中调用JS文件的几种方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

通过在xml布局文件中设置android:onClick=""来实现组件单击事件

在布局中出现android:onClick=""语句: <Button android:id="@+id/call_button" android:onClick="callphone" android:layout_width="wrap_content" android:l...

Android 项目中文件夹的说明与作用(转)

(转自:http://blog.csdn.net/goodshot/article/details/11529731)   Android 项目中文件夹的作用 1. src:存放所有的*.java源程序。 2. gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID。 3. assets:可以存放项目一些较大的资源文件,例...

微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置

关键字:微信公众平台 自定义菜单扫一扫 发图片 发地理位置作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/weixin-menu-new-type.html 自定义菜单能够帮助公众号丰富界面,让用户更好更快地理解公众号的重要功能。微信增加了点击菜单后调起扫一扫(支持二维码/一维码)、发图片、发地理位置的能力,需开发实...

【环境巡检】使用jmeter+ant+Jenkins+企业微信自动化巡检_ant调用jmeter脚本并生成报告(2)

 一、分析准备  接上文,目前jmeter、jdk等已经准备完成。本文从安装ant及配置相关jmeter配置说起。 二、ant调用jmeter生成报告 1)、安装ant 1、安装包下载 下载地址 http://ant.apache.org/bindownload.cgi,下载后解压到指定位置即可   2、配置环境变量       ANT_HOME 为 a...

XML WebService实例详细解析

先,我们必须了解什么是webservice.就概念上来说,可能比较复杂,不过我们可以有个宏观的了解:webservice就是个对外的接口,里面有 函数可供外部客户调用(注意:里面同样有客户不可调用的函数).假若我们是服务端,我们写好了个webservice,然后把它给了客户(同时我们给了他 们调用规则),客户就可以在从服务端获取信息时处于一个相对透明的状态...

intelij IDEA设置goole code style风格

1.安装google-java-format 插件      file ->Setings... ->pligins     输入上诉插件安装 2.下载IntelliJ Java Google Style file文件     文件已经挂在本人博客,https://download.csdn.net/download/banana100603...