asp源码api,asp 如何解析api接口返回的xml
asp源码api,asp 如何解析api接口返回的xml详细介绍
本文目录一览: ASP.NET项目开发指南:缓存API-使用Cache对象
缓存API:使用Cache对象
使用Cache对象 可以存储任何可序列化的数据对象 基于一个或多个依赖项的组合来控制缓存条目到期的方式 这些依赖项可以包括自从某对象被缓存后经过的时间 自从某对象上次被访问后经过的时间 对文件或文件夹的更改以及对其他缓存对象的更改 在略作处理后还可以包括对数据库中特定表的更改
在Cache中存储数据的最简单的方法就是使用一个键为其赋值 就像HashTable或Dictionary对象一样
Cache[ key ] = value ;
这种做法将在缓存中存储项 同时不带任何依赖项 因此它不会到期 除非缓存引擎为了给其他缓存数据提供空间而将其删除 要包括特定的缓存依赖项 可使用Add()或Insert()方法 其中每个方法都有几个重载 Add()和Insert()之间的唯一区别是 Add()返回对已缓存对象的引用 而Insert()没有返回值
Cache Insert( key myXMLFileData new System
Web Caching CacheDependency(Server MapPath( users xml )))
该示例可将文件中的XML数据插入缓存 无须在以后请求时从文件读取 CacheDependency的作用是确保缓存在文件更改后立即到期 以便可以从文件中提取最新数据 重新进行缓存 如果缓存的数据来自若干个文件 还可以指定一个文件名的数组
Cache Insert( dependentkey myDependentData
new System Web Caching CacheDependency(new
string[] {} new string[] { key }))
该示例可插入键值为key的第二个数据块(取决于是否存在第一个数据块) 如果缓存中不存在名为key的键 或者如果与该键相关联的对象已到期或被更新 则dependentkey的缓存条目将到期
Cache Insert( key myTimeSensitiveData
null DateTime Now AddMinutes( ) TimeSpan Zero)
绝对到期 此示例将对受时间影响的数据缓存一分钟 一分钟过后 缓存将到期
Cache Insert( key myFrequentlyAccessedData
null System Web Caching Cache NoAbsoluteExpiration
TimeSpan FromMinutes( ))
动态滚动到期 此示例将缓存一些频繁使用的数据 数据将在缓存中一直保留下去 除非数据未被引用的时间达到了一分钟
注意 动态滚动到期和绝对到期不能一起使用
总之 缓存可以使应用程序的性能得到很大的提高 因此在设计应用程序以及对应用程序进行性能测试时应该予以考虑 应用程序总会或多或少地受益于缓存 当然有些应用程序比其他应用程序更适合使用缓存 深刻理解ASP NET提供的缓存选项对于任何ASP NET开发人员来说都至关重要
返回目录 ASP NET项目开发指南
编辑推荐
ASP NET MVC 框架揭秘
ASP NET开发宝典
lishixinzhi/Article/program/net/201311/15811
ASP.NET挪用淘宝API实例详解
本文和各人具体分享一下如何使用来调用淘宝客API开发的实例讲解。第一步 获取全部推广商品实体需要使用类 ITopClient TOP客户端类1using Top.Api.Request;23namespace Top.Api4 {5///summary6/// TOP客户端。7////summary8publicinte***ce ITopClient9 {10///summary11/// 执行TOP公然API请求。12////summary13///typeparam name="T"领域对象/typeparam14///param name="request"具体的TOP API请求/param15///returns领域对象/returns16 T ExecuteT(ITopRequestT request) where T : TopResponse;1718///summary19/// 执行TOP隐私API请求。20////summary21///typeparam name="T"领域对象/typeparam22///param name="request"具体的TOP API请求/param23///param name="session"用户会话码/param24///returns领域对象/returns25 T ExecuteT(ITopRequestT request, string session) where T : TopResponse;26 }27 }DefaultTopClient 初始化连接(请求地址, Appkey, AppSecret);1using System;2using System.Collections;3using System.Collections.Generic;4using Top.Api.Parser;5using Top.Api.Request;6using Top.Api.Util;78namespace Top.Api9 {10///summary11/// 基于REST的TOP客户端。12////summary13publicclass DefaultTopClient : ITopClient14 {15publicconststring APP_KEY ="app_key";16publicconststring FORMAT ="format";17publicconststring METHOD ="method";18publicconststring TIMESTAMP ="timestamp";19publicconststring VERSION ="v";20publicconststring SIGN ="sign";21publicconststring PARTNER_ID ="partner_id";22publicconststring SESSION ="session";23publicconststring FORMAT_XML ="xml";2425privatestring serverUrl;26privatestring appKey;27privatestring appSecret;28privatestring format = FORMAT_XML;2930private WebUtils webUtils;3132#region DefaultTopClient Constructors3334public DefaultTopClient(string serverUrl, string appKey, string appSecret)35 {36this.appKey = appKey;37this.appSecret = appSecret;38this.serverUrl = serverUrl;39this.webUtils =new WebUtils();40 }4142public DefaultTopClient(string serverUrl, string appKey, string appSecret, string format)43 : this(serverUrl, appKey, appSecret)44 {45this.format = format;46 }4748publicvoid SetTimeout(int timeout)49 {50 webUtils.Timeout = timeout;51 }5253#endregion5455#region ITopClient Members5657public T ExecuteT(ITopRequestT request) where T : TopResponse58 {59return ExecuteT(request, null);60 }6162public T ExecuteT(ITopRequestT request, string session) where T : TopResponse63 {64//添加协议级请求参数65 TopDictionary txtParams =new TopDictionary(request.GetParameters());66 txtParams.Add(METHOD, request.GetApiName());67 txtParams.Add(VERSION, "2.0");68 txtParams.Add(APP_KEY, appKey);69 txtParams.Add(FORMAT, format);70 txtParams.Add(PARTNER_ID, "top-sdk-net-");71 txtParams.Add(TIMESTAMP, DateTime.Now);72 txtParams.Add(SESSION, session);7374// 添加签名参数75 txtParams.Add(SIGN, TopUtils.SignTopRequest(txtParams, appSecret));7677// 是否需要上传文件78string body;79if (request is ITopUploadRequestT)80 {81 ITopUploadRequestT uRequest = (ITopUploadRequestT)request;82 IDictionarystring, FileItem fileParams = TopUtils.CleanupDictionary(uRequest.GetFileParamet ers());83 body = webUtils.DoPost(this.serverUrl, txtParams, fileParams);84 }85else86 {87 body = webUtils.DoPost(this.serverUrl, txtParams);88 }8990 T rsp;91if (FORMAT_XML.Equals(format))92 {93 ITopParserT tp =new TopXmlParserT();94 rsp = tp.Parse(body);95 }96else97 {98 ITopParserT tp =new TopJsonParserT();99 rsp = tp.Parse(body);100 }101102return rsp;103 }104105#endregion106 }107 }TaobaokeItemsGetResponse 信息返回1using System;2using System.Xml.Serialization;3using System.Collections.Generic;4using Top.Api.Domain;56namespace Top.Api.Response7 {8///summary9/// TaobaokeItemsGetResponse.10////summary11publicclass TaobaokeItemsGetResponse : TopResponse12 {13///summary14/// 淘宝客商品对象列表。不返回taobaoke_cat_click_url和keyword_click_url两个字段。15////summary16 [XmlArray("taobaoke_items")]17 [XmlArrayItem("taobaoke_item")]18public ListTaobaokeItem TaobaokeItems { get; set; }1920///summary21/// 搜索到符合条件的结果总数22////summary23 [XmlElement("total_results")]24publiclong TotalResults { get; set; }25 }26 }TaobaokeItemsGetRequest 在请求类中设置相应条件信息。1using System;2using System.Collections.Generic;3using Top.Api.Response;45namespace Top.Api.Request6 {7///summary8/// TOP API: taobao.taobaoke.items.get9////summary10publicclass TaobaokeItemsGetRequest : ITopRequestTaobaokeItemsGetResponse11 {12///summary13/// 商品所在地14////summary15publicstring Area { get; set; }1617///summary18/// 是否主动发货19////summary20publicstring AutoSend { get; set; }2122///summary23/// 是否支持抵价券,设置为true表示该商品支持抵价券,设置为false或不设置表示不判定这个属性24////summary25publicstring CashCoupon { get; set; }2627///summary28/// 是否支持货到付款,设置为true表示该商品是支持货到付款,设置为false或不设置表示不判定这个属性29////summary30publicstring CashOndelivery { get; set; }3132///summary33/// 商品所属分类id34////summary35public Nullablelong Cid { get; set; }3637///summary38/// 最高累计推广佣金选项39////summary40publicstring EndCommissionNum { get; set; }4142///summary43/// 最高佣金比率选项44////summary45publicstring EndCommissionRate { get; set; }4647///summary48/// 可选值和start_credit一样。start_credit的值一定要小于或即是end_credit的值。注:end_credit与start_credit一起使用才生效49////summary50publicstring EndCredit { get; set; }5152///summary53/// 最高价格54////summary55publicstring EndPrice { get; set; }5657///summary58/// 累计推广量规模竣事59////summary60publicstring EndTotalnum { get; set; }6162///summary[nextpage]63/// 需返回的字段列表。可选值:num_iid,title,nick,pic_url,price,click_url,commis sion,commission_rate,commission_num,commission_vol u me,shop_click_url,seller_credit_score,item_locatio n ,volume ;字段之间用","分隔64////summary65publicstring Fields { get; set; }6667///summary68/// 是否查询消保卖家69////summary70publicstring Guarantee { get; set; }7172///summary73/// 标识一个应用是否来在无线或者手机应用,假如是true则会使用其他法则加密点击串。假如不穿值,则默认是false.74////summary75public Nullablebool IsMobile { get; set; }7677///summary78/// 商品标题中包含的关键字。 留意:查询时keyword,cid至少选择其中一个参数79////summary80publicstring Keyword { get; set; }8182///summary83/// 是否商城的商品,设置为true表示该商品是属于淘宝商城的商品,设置为false或不设置表示不判定这个属性84////summary85publicstring MallItem { get; set; }8687///summary88/// 淘宝用户昵称,注:指的是淘宝的会员登录名。假如昵称错误,那么客户就收不到佣金。每个淘宝昵称都对应于一个pid,在这里输进要结算佣金的淘宝昵称,当推广的商品成功后,佣金会打进此输进的淘宝昵称的账户。具体的信息可以登进阿里妈妈的网站查看。 font color="red"留意nick和pid至少需要传递一个,假如2个都传了,将以pid为准/font89////summary90publicstring Nick { get; set; }9192///summary93/// 是否30天维修,设置为true表示该商品是支持30天维修,设置为false或不设置表示不判定这个属性94////summary95publicstring OnemonthRepair { get; set; }9697///summary98/// 自定义输进串。格式:英文和数字组成;长度不能大于12个字符,区分不同的推广渠道,如:bbs,表示bbs为推广渠道;blog,表示blog为推广渠道。99////summary100publicstring OuterCode { get; set; }101102///summary103/// 是否海外商品,设置为true表示该商品是属于海外商品,默以为false104////summary105publicstring OverseasItem { get; set; }106107///summary108/// 结果页数。1~99109////summary110public Nullablelong PageNo { get; set; }111112///summary113/// 每页返回结果数。最大每页40114////summary115public Nullablelong PageSize { get; set; }116117///summary118/// 用户的pid,必须是mm_***x_0_0这种格式中间的"***x". font color="red"留意nick和pid至少需要传递一个,假如2个都传了,将以pid为准,且pid的最大长度是20/font119////summary120publicstring Pid { get; set; }121122///summary123/// 是否如实描述(即:先行赔付)商品,设置为true表示该商品是如实描述的商品,设置为false或不设置表示不判定这个属性124////summary125publicstring RealDescribe { get; set; }126127///summary128/// 是否支持7天退换,设置为true表示该商品支持7天退换,设置为false或不设置表示不判定这个属性129////summary130publicstring SevendaysReturn { get; set; }131132///summary[nextpage]133/// 默认排序:default price_desc(价格从高到低) price_asc(价格从低到高) credit_desc(信用等级从高到低) commissionRate_desc(佣金比率从高到底) commissionRate_asc(佣金比率从低到高) commissionNum_desc(成交量成高到低) commissionNum_asc(成交量从低到高) commissionVolume_desc(总支出佣金从高到底) commissionVolume_asc(总支出佣金从低到高) delistTime_desc(商品下架时间从高到底) delistTime_asc(商品下架时间从低到高)134////summary135publicstring Sort { get; set; }136137///summary138/// 起始累计推广量佣金。注:返回的数据是30天内累计推广量,具该字段要与最高累计推广量一起使用才生效139////summary140publicstring StartCommissionNum { get; set; }141142///summary143/// 起始佣金比率选项,如:1234表示12.34%144////summary145publicstring StartCommissionRate { get; set; }146147///summary148/// 卖家信用: 1heart(一心) 2heart (两心) 3heart(三心) 4heart(四心) 5heart(五心) 1diamond(一钻) 2diamond(两钻) 3diamond(三钻) 4diamond(四钻) 5diamond(五钻) 1crown(一冠) 2crown(两冠) 3crown(三冠) 4crown(四冠) 5crown(五冠) 1goldencrown(一黄冠) 2goldencrown(二黄冠) 3goldencrown(三黄冠) 4goldencrown(四黄冠) 5goldencrown(五黄冠)149////summary150publicstring StartCredit { get; set; }151152///summary153/// 起始价格。传进价格参数时,需留意起始价格和最高价格必须一起传进,并且 start_price = end_price154 ////summary155publicstring StartPrice { get; set; }156157///summary158/// 累计推广量规模开始159////summary160publicstring StartTotalnum { get; set; }161162///summary163/// 是否支持VIP卡,设置为true表示该商品支持VIP卡,设置为false或不设置表示不判定这个属性164////summary165publicstring VipCard { get; set; }166167#region ITopRequest Members168169publicstring GetApiName()170 {171return"taobao.taobaoke.items.get";172 }173174public IDictionarystring, string GetParameters()175 {176 TopDictionary parameters =new TopDictionary();177 parameters.Add("area", this.Area);178 parameters.Add("auto_send",
谁能帮我解释一下asp.net中的api具体的定义
Application Program Interface应用程序接口
其实从字面上看不出什么,细细琢磨一下,应用程序接口,那就是程序员和应用程序之间的桥梁。
从.net的技术角度上讲,API就是那些类和类的功能,没有什么其他的解释。
application progame interface
应用程序接口,好像是这样的
API是application progame interface,应用程序接口的意思。
这个概念比较泛,你可以从字面意思好好理解体会一下。
举个例子,你引用 DLL也算是API应用。
asp.net mvc3 项目怎么开发API接口?
Visual Studio为我们提供了专门用于创建ASP.NET Web API应用的项目模板,借助于此项目模板提供的向导,我们可以“一键式”创建一个完整的ASP.NET Web API项目。在项目创建过程中,Visual Studio会自动为我们添加必要的程序集引用和配置,甚至会为我们自动生成相关的代码,总之一句话:这种通过向导生成的项目在被创建之后其本身就是一个可执行的应用。
对于IDE提供的这种旨在提高生产效率的自动化机制,我个人自然是推崇的,但是我更推荐读者朋友们去了解一下这些自动化机制具体为我们做了什么?做这些的目的何在?哪些是必需的,哪些又是不必要的?正是基于这样的目的,在接下来演示的实例中,我们将摒弃Visual Studio为我们提供的向导,完全在创建的空项目中编写我们的程序。这些空项目体现在如右图所示的解决方案结构中。
如右图所示,整个解决方案一共包含6个项目,上面介绍的作为“联系人管理器”的单页Web应用对应着项目WebApp,下面的列表给出了包括它在内的所有项目的类型和扮演的角色。
·Common:这是一个空的类库项目,仅仅定义了表示联系人的数据类型而已。之所以将数据类型定义在独立的项目中,只要是考虑到它会被多个项目(WebApi和ConsoleApp)所使用。
WebApi:这是一个空的类库项目,表现为HttpController类型的Web API就定义在此项目中,它具有对Common的项目引用。
WebHost:这是一个空的ASP.NET Web应用,它实现了针对ASP.NET Web API的Web Host寄宿,该项目具有针对WebApi的项目引用。
SelfHost:这是一个空的控制台应用,旨在模拟ASP.NET Web API的Self Host寄宿模式,它同样具有针对WebApi的项目引用。
WebApp:这是一个空的ASP.NET Web应用,代表“联系人管理器”的网页就存在于该项目之中,至于具体的联系人管理功能,自然通过以Ajax的形式调用Web API来完成。
ConsoleApp:这是一个空的控制台应用,我们用它来模拟如何利用客户端代理来实现对Web API的远程调用,它具有针对Common的项目引用。
二、定义Web API
在正式定义Web API之前,我们需要在项目Common中定义代表联系人的数据类型Contact。简单起见,我们仅仅为Contact定义了如下几个简单的属性,它们分别代表联系人的ID、姓名、联系电话、电子邮箱和联系地址。
1: public class Contact
2: {
3: public string Id { get; set; }
4: public string Name { get; set; }
5: public string PhoneNo { get; set; }
6: public string EmailAddress { get; set; }
7: public string Address { get; set; }
8: }
表现为HttpController的Web API定义在WebApi项目之中,我们一般将ApiController作为继承的基类。ApiController定义在“System.Web.Http.dll”程序集中,我们可以在目录“%ProgramFiles%\Microsoft ASP.NET\ASP.NET Web Stack 5\Packages\”中找到这个程序集。具体来说,该程序集存在于子目录“Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45”中。
Web API体现在如下所示的ContactsController类型中。在该类型中,我们定义了Get、Post、Put和Delete这4个Action方法,它们分别实现了针对联系人的查询、添加、修改和删除操作。Action方法Get具有一个表示联系人ID的可缺省参数,如果该参数存在则返回对应的联系人,否则返回整个联系人列表。由于ASP.NET Web API默认实现了Action方法与HTTP方法的映射,所以方法名也体现了它们各自所能处理请求必须采用的HTTP方法。
1: public class ContactsController: ApiController
2: {
3: static List
contacts;
4: static int counter = 2;
5:
6: static ContactsController()
7: {
8: contacts = new List
();
9: contacts.Add(new Contact { Id = "001", Name = "张三",
10: PhoneNo = "0512-12345678", EmailAddress = "zhangsan@gmail.com",
11: Address = "江苏省苏州市星湖街328号" });
12: contacts.Add(new Contact { Id = "002", Name = "李四",
13: PhoneNo = "0512-23456789", EmailAddress = "lisi@gmail.com",
14: Address = "江苏省苏州市金鸡湖大道328号" });
15: }
16:
17: public IEnumerable
Get(string id = null)
18: {
19: return from contact in contacts
20: where contact.Id == id || string.IsNullOrEmpty(id)
21: select contact;
22: }
23:
24: public void Post(Contact contact)
25: {
26: Interlocked.Increment(ref counter);
27: contact.Id = counter.ToString("D3");
28: contacts.Add(contact);
29: }
30:
31: public void Put(Contact contact)
32: {
33: contacts.Remove(contacts.First(c => c.Id == contact.Id));
34: contacts.Add(contact);
35: }
36:
37: public void Delete(string id)
38: {
39: contacts.Remove(contacts.First(c => c.Id == id));
40: }
41: }
简单起见,我们利用一个静态字段(contacts)表示存储的联系人列表。当ContactsController类型被加载的时候,我们添加了两个ID分别为“001”和“002”的联系人记录。至于实现联系人CRUD操作的Action方法,我们也省略了必要的验证,对于本书后续的演示的实例,我们基本上也会采用这种“简写”的风格。
在asp或者aspx网页中如何调用api函数?
貌似asp没有直接调用的功能。写个DLL,注册到服务器就OK 了
http://www.baidu.com/s?cl=3&wd=asp%B5%F7%D3%C3api
ASP中怎么调用API函数
<%@ Import Namespace="System.Runtime.InteropServices" %>
asp 如何解析api接口返回的xml
假如 xml 的数据如下
toUser
fromUser
1348831860
text
this is a test
1234567890123456
ASP代码:
<%set xml_dom = Server.CreateObject("MSXML2.DOMDocument")xml_dom.load requeststrxml=xml_dom.xmlresponse.Write xml_dom.getelementsbytagname("ToUserName").item(0).text & vbcrlfresponse.Write xml_dom.getelementsbytagname("FromUserName").item(0).text & vbcrlfresponse.Write xml_dom.getelementsbytagname("CreateTime").item(0).text & vbcrlfresponse.Write xml_dom.getelementsbytagname("MsgType").item(0).text & vbcrlfresponse.Write xml_dom.getelementsbytagname("Content").item(0).text & vbcrlfresponse.Write xml_dom.getelementsbytagname("MsgId").item(0).text & vbcrlf%>
运行效果:
asp.net网页中如何调用api
引用包含API函数的命名空间,实例化类,引用之~
顺便告诉你声,VB的类也可以用到C#里面,不是得是2.0框架
根据api开发文档引入api,实例化!用实例化的对象就可以调用其中的方法了!
纯靠网页是不行的,调用浏览者的Windows api根本实现不了如果实现了,岂不是能控制人啊,如果你非要实现这个方法,你需要创建一个Windows用户控件,再叫用户安装这个Windows控件,再在你的网页中嵌入这个控件,通过这个控件实现控制用户,并且执行一些需要高权限的操作,比如一些在线杀毒都是通过控件实现的。
ASP.NET如何给外部程序提供API接口
是否需要调用放传入参数?
1、如果不需要则直接Respone.Write出想输出的内容。
2、如果需要则先判定是否Request.QueryString或者Request.Form到数据,如果没有则返回空,否则再进行数据验证后返回结果。
asp怎么接收百度API天气预报
ASP只能请求API天气预报数据接口
1、你用服务端代码请求接口数据,返回JSON的字符窜
2、解析这个字符窜。由于ASP没有解析JSON的内置函数(也叫过程)。要解析这段字符串就要写代码。
3、简单的可以用ASP.NET几行代码来设置。
首先你的表达是有问题的,是请求不是接收。你用服务端代码请求接口数据,返回JSON的字符窜后,再解析这个字符窜。ASP没有解析JSON的内置函数(也叫过程)。所以你要解析这段字符串都要写一堆代码。不如用ASP.NET几行代码就搞定了。
如果需要可以给你写个实例