⑴ 怎样用webapi连接到数据库的数据
先打开vs2010软件,找到项目文件,双击web.config
vs2010中web.config配置数据库连接
第一种:取连接字符串
string
connstring
=
system.web.configuration.webconfigurationmanager.connectionstrings["sqlconnstr"].connectionstring;
或者
protected
static
string
connectionstring
=
configurationmanager.connectionstrings["sqlconnstr"].connectionstring;
web.config文件:加在</configsections>后面
<connectionstrings>
<remove
name="localsqlserver"
/>
<add
name="sqlconnstr"
connectionstring="user
id=xx;password=xx;initial
catalog=database_name;data
source=.\sqlxxxx"
/>
</connectionstrings>
vs2010中web.config配置数据库连接
第二种:取连接字符串:
string
myvar=configurationsettings.appsettings["connstring"];
web.config文件:加在<appsettings>和</appsettings>
之间
<appsettings>
<add
key="connstring"
value="uid=xx;pwd=xx;database=batabase_name;server=(local)"
/>
</appsettings>
据说两者通用,但是第二种是asp.net2.0的新特性,建议使用第二种。其实我一直有个疑问,两个字符串中的uid;pwd;和user
id;
password;是否等价。根据网上我查到的资料是可以互换通用的。
vs2010中web.config配置数据库连接
连接sql
server数据库的机制与连接access的机制没有什么太大的区别,只是改变了connection对象和连接字符串中的不同参数.
首先,连接sql
server使用的命名空间不是"system.data.oledb",而是"system.data.sqlclient".
其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间用分号分隔):
"user
id=sa":连接数据库的验证用户名为sa.他还有一个别名"uid",所以这句我们还可以写成"uid=sa".
"password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=".
这里注意,你的sql
server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的sql
server设置为windows登录,那么在这里就不需要使用"user
id"和"password"这样的方式来登录,而需要使用"trusted_connection=sspi"来进行登录.
initial
catalog=northwind":使用的数据源为"northwind"这个数据库.他的别名为"database",本句可以写成"database=northwind".
"server=yoursqlserver":使用名为"yoursqlserver"的服务器.他的别名为"data
source","address","addr".如果使用的是本地数据库且定义了实例名,则可以写为"server=(local)\实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或ip地址.
"connect
timeout=30":连接超时时间为30秒.
在这里,建立连接对象用的构造函数为:sqlconnection.
7
最后要保存你所更改的文件,右键
保存(ctrl+s).
⑵ webapi的ActionFilterAttribute可以直接返回数据给客户端吗
------解决思路----------------------
http://blog.csdn.net/starfd/article/details/43524175
//此处暂时以401返回,可调整为其它返回
actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized);
//actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
艹,csdn这是要关门的节奏,回复的功能都出500错误了!
------解决思路----------------------
上面两种返回HttpResponseMessage的方法(构造)都有几种重载,可以传入自定义class,也可以返回StringContent之类的
⑶ 在WebApi中返回一个JSON格式的数据,如何到客户端就变了
转载 在使用Web Api的时候,有时候只想返回JSON;实现这一功能有多种方法,本文提供两种方式,一种传统的,一种作者认为是正确的方法。
JSON in Web API – the formatter based approach
只支持JSON最普遍的做法是:首先清除其他所有的formatters,然后只保留JsonMediaTypeFormatter。
有了HttpConfiguration的实例,你将会很简单的清除所有formatters,然后重新添加JsonMediaTypeFormatter。
实现代码如下:
configuration.Formatters.Clear();
configuration.Formatters.Add(new JsonMediaTypeFormatter());这种方式虽然可以实现功能,但是所有的conent negotiation还是会发生,这就会产生以下额外的开销了。因为,你已经知道要返回的结果了,也只想返回Json,其他的content negotiation都不需要了。
下面的方法可以很好的解决这个问题。
JSON in Web API – the conneg based approach
最好的方法是使用自定义的只返回Json Result的content negotiation代替Web Api中默认的content negotiation。
Conneg通过实现IContentNegotiator的Negotiator方法实现扩展。Negotiator方法返回ContentNegotiationResult(它包装了你选择的headers和formatter)。
下面的方法通过传递一个JsonMediaTypeFormatter给自定义的conneg negotiator,让它一直返回applicaton/json 的content-type以及JsonMediaTypeFormatter。这种方法避免了每次请求都要重新创建一次formatter。
代码如下:
public class JsonContentNegotiator : IContentNegotiator
{
private readonly JsonMediaTypeFormatter _jsonFormatter;
public JsonContentNegotiator(JsonMediaTypeFormatter formatter)
{
_jsonFormatter = formatter;
}
public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters)
{
var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json"));
return result;
}
}接下来,你需要在HttpConfiguration实例上注册你的新的实现机制:
var jsonFormatter = new JsonMediaTypeFormatter();
//optional: set serializer settings here
config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));
通过替换默认的DefaultContentNegotiator,我们使用我们自定义的JsonContentNegotiator,它只支持Json,而且可以马上返回。
如果你想更深入的了解Content Negotiation的知识,你可以查看作者的这篇文章。
总结
通过使用自定义的JsonContentNegotiator替换系统默认的DefaultContentNegotiator,很好的实现Web Api只返回Json的功能,而且没有额外的开销。
⑷ 桌面程序怎样通过webapi获取json数据
首先要思考下为什么google要开发api呢,因为google的产品用户很多,他们的需求也是各种各样的,打个比方adwords,用户可以下载google adwords editors这样的桌面软件去操作,也可以通过google adwords的界面去操作,但是用户同时也要操作 推广助手,有技术的客户就想 能不能自己开发一款软件 打通这2个产品google adwords和网络推广,同时可以操作,所以api接口就给了这样的可能,这是和同类型产品对接,方便用户统一操作,
还有一个例子,google analytics自定义运用,每周都需要发报告给客户,虽然google analytics有自动报告功能,但是如果有报告固定的格式,每周都是人共去google analytics里面去拉数据 然后填进去的话, 完全可以用web或者客户端的方式自动去取数据,然后填充到模板里面(模板可以通过web方式整合成html代码 再通过api把html代码中的数字替换)再加个发信函数,这样每个星期都可以有一份图文并茂 并且随时调整模板的报告邮件了,同时你甚至可以同时集合ga和adwords Bai的数据这样就省掉大量人工发信的时间。这里api的作用是整合其他信息,一起制作需要的产品,节约时间
未来的社会是开发的社会,只有把产品的接口开放出来,用户安装自己的想法加以利用就可以让产品使用的人更加方便
Google analytics的数据是支持通过api按需导出 甚至你可以制作成email或者整合在你的网站后台中,这些都只是需要api,再开始之前先介绍下
什么是api呢 你可以理解就是通用的函数 可以调用google的服务的数据 例如google analytics数据,
什么是token,token就是一串帐号密码,不过这个是随机变动的,因为在互联网中传输信息,所以最好有一套随机变动的密码来保证信息的安全,
什么是Python,python是一个很简单的程序语言,安装下就可以用就和vb一样 但是他很强壮 据说只要电脑能做的事 他就能做 无所不能 和硬件交互也没问题的
什么是Json 文件 是一种类似txt文件的一种文本文件,这里用来保存机密的信息例如你的帐号密码
什么是Google api library库,电脑安装了python只能说是安装了一个基本的语言环境,你要实现某些功能还需要程序,google把这些可以操作自己服务的基础数据的文件打包成库文件 记住这里的库并不是所以的google的服务的程序都在里面,只是定义了一个基本的接口和传输方法,你要运行google analytics 还是需要定义一些函数来操作的 然后再引用google api的 库文件
什么是客户端 google的 api分多种 你既可以通过web 的应用来获取数据(要绑定运行的网站的域名,主要也是为安全) 也可以通过本地的程序,这里为了演示方法 我用的本地程序,所以我这里的客户端是桌面程序应用
⑸ 请教webapi,webservice和纯http通讯的选择优劣
先说下我的理解
1.用纯http协议作通讯
客户端通过http的get或者post,发送请求,参数通过queryString或者表单形式发过去。服务端处理完后,发送双方约定的字符串给客户端。
ashx和mvc方法都可以轻松实现。
2.asmx类型的webservice
我认为也只是客户端发送一个http请求过去,然后服务端返回一个响应报文回来。只是限定了发送和响应的文本内容必须是符合soap协议的xml字符串。其他我认为跟普通http请求/响应基本一样。
3.webapi
尚不知道呐,只知道是用json传递数据。但是也是基于http的get和post吧。
⑹ 如何使用web api测试工具siege和ab的post方法来发送json数据 / 蓝讯
webapi 支持post get 只需要方法名称是post 和get 就可以了 function nTabs(thisObj,Num){ if(thisObj.className == "active")return; var tabObj = thisObj.parentNode.id; var tabList = document.getElementById(tabObj).getElementsByTagName("li"); for(i=0; i <tabList.length; i++) {
⑺ 如何向其他的http接口发送JSON数据应该怎么做那通过什么技术可以实现
你说的其实就是webapi呗,对方既然接受JSON数据那肯定是公开接口定义的,你自己组织JSON数据通过ajax发给它就可以了,还需要什么“技术”?前端天天干的不就是这个事儿么……
⑻ 如何从web视图访问webapi的数据
Cors是个比较热的技术,这在蒋金楠的博客里也有体现,Cors简单来说就是“跨域资源访问”的意思,这种访问我们指的是Ajax实现的异步访问,形象点说就是,一个A网站公开一些接口方法,对于B网站和C网站可以通过发Xmlhttprequest请求来调用A网站的方法,对于xmlhttprequest封装比较好的插件如jquery的$.ajax,它可以让开发者很容易的编写AJAX异步请求,无论是Get,Post,Put,Delete请求都可以发送。
Cors并不是什么新的技术,它只是对HTTP请求头进行了一个加工,还有我们的Cors架构里,对jsonp也有封装,让开发者在使用jsonp访问里,编写的代码量更少,更直观,呵呵。(Jsonp和Json没什么关系,它是从一个URI返回一个Script响应块,所以,JSONP本身是和域名没关系的,而传统上的JSON是走xmlhttprequest的,它在默认情况下,是不能跨域访问的)