如何落实肥皂技术

想休息,贯彻肥皂涉及发电请求,然后处理响应。 而处理肥皂的回应是相似的,其余的结果,生成肥皂的要求是大不相同了。

发电请求

不像休息,这是相当罕见地看到,请手动生成的,虽然它依然可以做的。 一般来说,肥皂要求,是不是产生了一个通用的工具(如nusoap或梨:肥皂) ,或与应用程序特定阶级或模块。 手册一代是盖在这里(一个很好的了解它如何工作,将在今后有用) ,以及nusoap 。

特定应用工具会被忽视,为一对夫妇的理由。 由定义它们的应用,具体的,所以不是很有用在这方面的通用条。 其次,工具,有不同的介面和功能层面,而为了做这个专题正义的,它需要一个深入的研究。 最后,我坚决的认为,如果你能想出如何使工作与nusoap (或原料,因为这件事) ,你可以得到特定的应用工具,也可以工作。

手册代

发电肥皂请手动,是不是差距太大,发电,其余的请求。 过程中生成的要求和实际转递它是分成两个不同的功能,用于展示目的。

  

供发电的要求自己,我会选择使用pregenerated字符串,只是通过植入所需的价值观,在运行时。 还有更复杂的选项(如创建文件了simplexml ,或创造,它从无到有,每次运行) ,但他们不是真正需要:

functioncreaterequest ( $ devkey元,行动元,类型,为关键字)

元请求= " < ? xmlversion = \ " 1.0 \ "编码= \ " utf - 8 \ "独立= \ "不\ " ? >
<肥皂包膜:信封
xmlns :肥皂包膜= \ " http://schemas.xmlsoap.org/soap/envelope/ \ "
xmlns : xsd = \ " http://www.w3.org/2001/xmlschema \ "
xmlns : xsi的= \ " http://www.w3.org/2001/xmlschema-instance \ " >
< 肥皂包膜:人体>
< devkey xsi的:类型= \ " xsd为: int \ " >元devkey < / devkey >
<行动xsi的:类型= \ " xsd :字符串\ " >为行动< /动作>
<型xsi的:类型= \ " xsd :字符串\ " >元型< /类型>
<关键字xsi的:类型= \ " xsd :字符串\ " >元关键字< /关键字>
< /肥皂包膜:人体>
< /肥皂包膜:信封> " ;
为回报要求;

至于你能分辨出,该功能仅作为简单,因为它能够得到的。 注意的是变量没有编码的url ;那是因为他们并没有被送往在url (听起来很明显,但它也容易小姐) 。

其实,呼唤着空气污染指数转交请求涉及借款一些代码从第一次休息的例子,因为要求,将被送到生肉这个时候。

functioncallsoapapi (元数据)

美元的url = " http://library.example.com/api/soap/search " ;
元url_info = parse_url ( $的url ) ;
。 $ url_info [ '东道主' ] ;
元径= $ url_info [ '路' ] ;

我刚才已经人口稠密元东道国元及路径变量,在一开始,但也应该清楚。 在一个生产系统,你可以节省数中央处理器周期hardcoding这些元素。

美元计划生育= fsockopen ( $东道主, 80 ) ;
fputs ( $计划生育, "吃到" 。元径。 " http/1.1标准\ r \ n " ) ;
fputs ( $计划生育, "主持人: " 。元主持。 " \ r \ n " ) ;
fputs ( $计划生育" ,接受: * / * \ r \ n " ) ;
fputs ( $计划生育" ,接受-字符:国际标准化组织- 8859 - 1 , utf - 8 ;为q = 0.7 , * ;为q = 0.7 \ r \ n " ) ;
fputs ( $计划生育, "联系:关闭\ r \ n " ) ;
fputs ( $计划生育" ,内容类型:应用/肥皂+ xml的\ r \ n " ) ;
fputs ( $计划生育, "内容长度: " 。 strlen (元数据) 。 " \ r \ n \ r \ n " ) ;
fputs ( $计划生育, "元数据" ) ;

这是座几乎一模一样,以前面的例子。 前面的例子是一个职位的要求,而这是一个get请求,这种改变将取决于空气污染指数,无论你是工作。 内容型包头是不同的,以准确反映您想要发送和这个时候,当然你有元数据发送,所以内容的长度不会0 。

为响应= " " ;
而( !对流进行feof ( $计划生育) )

响应.=和fgets ( $计划生育, 128 ) ;

fclose ( $计划生育) ;
名单( $ http_headers元, http_content ) =爆发( " \ r \ n \ r \ n " ,为响应) ;
返回http_content元;

这一节也是相同的,其余的例子。 包装两种职能,以取出回应,只是勉强值得一提:

元要求= createrequest ( '123 ' , '搜索' , '书' , '风格) ;
为响应= callsoapapi ( $要求) ;

是不是太辛苦了!

不像休息,你不能只用file_get_contents ( ) ,以达到空气污染指数,因为你需要派遣xml主体与要求。 file_put_contents ( ) wont工作,因为你需要的反应( file_put_contents ( )返回一个int ) ,但也有其他的选择。 梨( http://pear.php.net ) ,例如,有一串http的特定功能,可以采取一些最感头痛的手工制造的要求脱下自己的双手,但仍让你所有的灵活性,你得到同手工创建。

一代nusoap

对于任何事情,除了一杆的节目,我一定会参加推荐会与某种形式的肥皂模块,使你的编码生活更加容易。 虽然,如果你遇到问题,跟踪他们失望了,可有点疼痛。 我喜欢用当地的发展框在发展,所以要的东西开始被麦城,我可以用一个包嗅探器,以研究有关请求/响应,在其原始形式。

在概念上,用nusoap是不是差距太大,从完成任务的手工操作。 对象初始化,有效载荷是创造,并请求派。 关键的区别是, nusoap ,正在尽一切肮脏的工作。

需要('../库/ nusoap.php ' ) ;
为客户=新soapclient ( " http://library.example.com/api/soap/wsdl/ " ,真实) ;

在这里,为客户对象被创建。 有两个选项可供选择当创建一个新的soapclient :您可以指定使用wsdl档案,为服务(设置第二个参数为true ) ,或者指定端点为拨打电话(设置第二个参数,以虚假) 。 只要有可能,我想用的wsdl文件;该nusoap模块可赶上你们的一些错误,这样,并确保不同的请求类型都去到正确的终点。

元params =阵列(
' devkey ' = > '123 ' ,
'行动' = > '搜寻' ,
'型' = > '书' ,
'关键字' = > '风格'
) ;

准备参数传输是一个容易对付一点儿比以前的方法。

美元名字= ' http://library.example.com ' ;
$行动= ' http://library.example.com/api/soap/search ' ;
元方法= " searchrequest " ;
$结果= $客>电话: (元方法,
阵列( ' searchrequest ' = > $ params )
美元名字空间,为行动) ;

最后,在过去数参数设置,并自称是取得了。

处理响应

处理响应,从肥皂要求又是不太有别于其余的反应-无论是在提供类似的x ml格式。 肥皂的反应也带有附加信封及身体成分,但往往是目前数据以类似方式与这些要素。 当然还有一些变化之间的处理反应一本手册要求,并从nusoap要求。 这两种方法都在这里。

手动解析响应

酷似输出产生与休息的要求,利用类似的代码,很少有修改,供包封计划用肥皂。

回声: "你们在网上查看: (元xml的>健身> librarysearchresponse - > requestinfo - >
关键字) <br> " ;

回声: "这里是你的(元xml的>健身> librarysearchresponse - > responseinfo - > resultcount )
结果<br> " ;
foreach ( $ xml的>健身> librarysearchresponse - > responseinfo - >项目作为& $项目)

回声" ( $项目- >标题) (美元项目- >作者) <br> " ;

这将产生相同的输出作为休息的要求,表现出较早。 注不同的语法用来购买搜索关键字。 它不是一个属性这个时候,所以获得的是不同的。

解析响应与nusoap

访问对象所提供的nusoap是一个有点不同,从所用的方法与了simplexml ,但内部数据结构颇为相似。 修改程式码的工作与nusoap对象只需要几分钟。

回声: "你们在网上查看: " 。
元xml的[ '尸体' ] [ ' librarysearchresponse ' ] [ ' requestinfo ' ] [ '关键字' ] 。 " <br> " ;
回声: "这里是你的
(元的xml [ '尸体' ] [ ' librarysearchresponse ' ] [ ' responseinfo ' ] [ ' resultcount ' ] )
结果<br> " ;
foreach ( $ xml的[ '尸体' ] [ ' librarysearchresponse ' ] [ ' responseinfo ' ] [ '项目' ] & $项目)

回声" ( $项目[ '标题' ] ) (元项目[ '作者' ] ) <br> " ;

与nusoap ,内部数据存取多以同样的方式作为关联数组,所以,而不是面向对象方法的使用->获得儿童元素,进一步阵列资料。 这一内容将输出相同的,以前面的例子。

肥皂是一种行之有效的方法的质疑宣传短片时,额外开销是不被允许的。 包封的所有要素可以很容易地读,变量范围内的请求。 制造肥皂的要求能获得那么简单,写出来一次,那么就更换关键变量。 不然,它也可以通过使用一种工具,如nusoap 。 进入肥皂反应能够做到的,在许多相同的方式,其余的响应请求时,被请求已经完成,手工完成。 在案件的要求,完成与nusoap ,接入方式,在结构上是相同的,只有少数几个小的变化,以语法使用。

这是一篇文章说,由emanuela赫德里克
免责声明:我们的网站是不负责所载资料由本条规定。 这篇文章根本没有反映看法,意见,思想或信仰的文章目录中的工作人员。

翻译预告:文章"如何落实肥皂技术" ,被翻译使用的自动翻译服务。 我们真诚地道歉,对任何翻译错误发生。 谢谢你的谅解。

Online: 544 users browsing the articles directory