若相依 发表于 2015-1-18 11:16:06

ASP.NET网页设计jQuery能做到,PHP能做到,C#也能做到仓酷云

语言是不是不是最重要的?标题有些年夜,但文中谈到的成绩很小;看似表彰C#,实践不是。
这个小成绩来自如许的使用场景——以HTTPPOST的体例挪用第三方API,第三方API不撑持JSON传参,只能经由过程URLquerystring体例传参(a=1&b=2)。
假定API的地点是http://www.ckuyun.com/api/say,必要传送的参数是username与words,只撑持HTTPPOST挪用。
别的,加一个束缚前提——不同意用字符串拼接,好比:"username="+username+"&words="+words;
jQuery中的挪用示例代码


varpostData={username:test,words:helloworld};$.ajax({url:http://www.ckuyun.com/api/say,data:postData,type:post,});

在下面的Javascript代码实行时,jQuery会主动将js对象postData转换为Urlquerystring的情势(username=test&words=hello+world),并主动举行Urlencode。
PHP中的挪用示例代码


$url=http://www.ckuyun.com/api/say;$data=array(username=>test,words=>helloworld);$data=http_build_query($data);$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$data);$response=curl_exec($ch);curl_close($ch);

PHP内置的http_build_query()函数能主动将数组转换为Urlquerystring的情势(username=test&words=hello+world),并主动举行Urlencode。
C#中的挪用示例代码
1、在.NETFramework4.0中的完成(HttpWebRequest+匿名范例+反射+LINQ)
参数经由过程匿名范例(AnonymousType)举行界说:

varpostData=new{username="test",words="helloworld"};
.NETFramework4.0的类库中没有供应间接将“匿名范例实例”转换为“Url查询参数”的API,只能借助“反射+LINQ”本人完成。完成代码以下:


staticvoidMain(string[]args){varurl="http://www.ckuyun.com/api/say";varpostData=new{username="test",words="helloworld"};varwebRequest=WebRequest.Create(url)asHttpWebRequest;webRequest.Method="post";webRequest.ContentType="application/x-www-form-urlencoded";varqueryString=string.Join("&",frompinpostData.GetType().GetProperties()selectp.Name+"="+HttpUtility.UrlEncode(p.GetValue(postData,null).ToString()));using(varsw=newStreamWriter(webRequest.GetRequestStream())){sw.Write(queryString);}using(varresponse=webRequest.GetResponse()){using(varsr=newStreamReader(response.GetResponseStream())){Console.WriteLine(sr.ReadToEnd());}}}

2、在.NETFramework4.5中的完成(HttpClient+FormUrlEncodedContent)
.NETFramework4.5思索到了这个使用场景,供应了FormUrlEncodedContent,但它不撑持匿名范例(AnonymousType),只撑持字典(Dictionary)。参数必要如许界说:

varpostData=newDictionary<string,string>{{"username","test"},{"words","helloworld"}};
完全完成代码以下(必要援用System.Net.Http):


staticvoidMain(string[]args){varurl="http://www.ckuyun.com/api/say";varpostData=newDictionary<string,string>{{"username","test"},{"words","helloworld"}};varurlEncodedContent=newFormUrlEncodedContent(postData);varhttpClient=newHttpClient();varresult=httpClient.PostAsync(url,urlEncodedContent).Result.Content.ReadAsStringAsync().Result;Console.WriteLine(result);}

.NETFramework4.5中的完成还算复杂,可是FormUrlEncodedContent只撑持Dictionary,思索仍是不周密。
感受
.NET因互联网而生,而经由过程URLquerystring传参的需求在互联网使用中一般存在,但.NET从4.5才入手下手思索这个使用场景,其实有点说不外往。
我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:)

乐观 发表于 2015-1-20 18:59:13

使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。

灵魂腐蚀 发表于 2015-1-29 15:02:43

Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。

变相怪杰 发表于 2015-2-6 02:15:45

主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。

仓酷云 发表于 2015-2-6 09:41:59

比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。

若相依 发表于 2015-2-7 10:06:23

PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。

简单生活 发表于 2015-2-21 16:57:45

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

愤怒的大鸟 发表于 2015-2-26 14:48:16

可以通过在现有ASP应用程序中逐渐添加ASP.NET功能,随时增强ASP应用程序的功能。ASP.NET是一个已编译的、基于.NET的环境,可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。另外,任何ASP.NET应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。

冷月葬花魂 发表于 2015-3-8 14:32:17

我的意思是.net好用,从功能上来说比JAVA强还是很明显的。

不帅 发表于 2015-3-16 01:13:18

代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。

小魔女 发表于 2015-3-22 18:12:48

代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
页: [1]
查看完整版本: ASP.NET网页设计jQuery能做到,PHP能做到,C#也能做到仓酷云