當前位置:首頁 » 編程語言 » php調用wcf

php調用wcf

發布時間: 2022-05-01 15:31:52

⑴ 如何調用帶參數的WCF方法

[OperationContract(Name="sayHelloJson")]
[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "sayHello", BodyStyle = WebMessageBodyStyle.Wrapped)]
String sayHello();
[OperationContract(Name = "SendMessageJson")]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "SendMessage/{Message}", BodyStyle = WebMessageBodyStyle.Wrapped)]
String SendMessage(String Message);
比如說第一個不帶參數的:http://localhost:8000/Service/Json/sayHello
那麼第二個帶參數的應該怎麼調用?(比如說參數是"abc")
我指的是在瀏覽器中或java的httpclient中,因為我准備在android上實現客戶端,所以.net的調用方式就不必講了。

你URITemplate已經設置了。Get方式。

我猜測一下調用的URL應該是: 網站URL/SendMessage/你好

另外建議你使用REST WCF自帶的一個幫助頁面,裡面會給出更精確的調用示例。

php中不需要WCF這樣的框架嗎

ASP是Active Server Page的縮寫,意為「活動伺服器網頁」。ASP是微軟公司開發的代替CGI腳本程序的一種應用,它可以與資料庫和其它程序進行交互,是一種簡單、方便的編程工具。ASP的網頁文件的格式是.asp,現在常用於各種動態網站中。 ASP是一種伺服器端腳本編寫環境,可以用來創建和運行動態網頁或Web應用程序。ASP網頁可以包含HTML標記、普通文本、腳本命令以及COM組件等。利用ASP可以向網頁中添加互動式內容(如在線表單),也可以創建使用HTML網頁作為用戶界面的web應用程序。 與HTML相比,ASP網頁具有以下特點:

(1)利用ASP可以實現突破靜態網頁的一些功能限制,實現動態網頁技術;

(2)ASP文件是包含在HTML代碼所組成的文件中的,易於修改和測試;

(3)伺服器上的ASP解釋程序會在伺服器端制定ASP程序,並將結果以HTML格式傳送到客戶端瀏覽器上,因此使用各種瀏覽器都可以正常瀏覽ASP所產生的網頁;

(4)ASP提供了一些內置對象,使用這些對象可以使伺服器端腳本功能更強。例如可以從web瀏覽器中獲取用戶通過HTML表單提交的信息,並在腳本中對這些信息進行處理,然後向web瀏覽器發送信息;

(5)ASP可以使用伺服器端ActiveX組件來執行各種各樣的任務,例如存取資料庫、發現哦那個Email或訪問文件系統等。

(6)由於伺服器是將ASP程序執行的結果以HTML格式傳回客戶端瀏覽器,因此使用者不會看到ASP所編寫的原始程序代碼,可防止ASP程序代碼被竊取。

PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext Preprocessor)的縮寫。PHP 是一種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在伺服器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言,現在被很多的網站編程人員廣泛的運用。PHP 獨特的語法混合了 C、Java、Perl 以及 PHP 自創新的語法。它可以比 CGI 或者 Perl 更快速的執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;與同樣是嵌入HTML文檔的腳本語言JavaScript相比,PHP在伺服器端執行,充分利用了伺服器的性能;PHP執行引擎還會將用戶經常訪問的PHP程序駐留在內存中,其他用戶再一次訪問這個程序時就不需要重新編譯程序了,只要直接執行內存中的代碼就可以了,這也是PHP高效率的體現之一。PHP具有非常強大的功能,所有的CGI或者JavaScript的功能PHP都能實現,而且支持幾乎所有流行的資料庫以及操作系統。

⑶ wcf 調用問題 1.通過vs直接引用服務;2.通過vs命令工具生成代理類; 求大神告知這兩方式有什麼區別,利弊

WCF服務調用通過兩種常用的方式:一種是藉助代碼生成工具SvcUtil.exe或者添加服務引用的方式,一種是通過ChannelFactory直接創建服務代理對象進行服務調用。
下面簡單說下如何通過SvcUtil.exe的方式調用服務:
SvcUtil.exe是一個命令行工具,位於:C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin目錄下,可以將SvcUtil.exe添加到VS2010中方便以後的運用,添加方式:在VS2010的Tools菜單中選擇External Tools

點擊添加按鈕,在Title欄輸入SvcUtil,Command欄選擇SvcUtil.exe所在的目錄,Initial directory欄選擇生成的客戶端代碼和配置文件所放的目錄,選上Prompt for arguments,不選上Close on exit,點擊OK完成添加。
添加好以後,點擊VS2010菜單下的SvcUtil,輸入提供元數據的服務終結點的 URL
點擊OK,在彈出的命令行中會顯示成功與否和相關信息。
如果成功的話會生成兩個文件,一個是包含了服務端Contract和對應於服務端service的本地代理類的cs文件,一個是WCF配置文件,將這兩個文件拷到項目中並將output.config改名為app.config就可以了。

⑷ 如何:以非同步方式調用 WCF 服務操作

介面。通過使用事件驅動的非同步調用模型,客戶端可以對此介面非同步調用操作。(有關基於事件的非同步調用模型的更多信息,請參見
Multithreaded Programming with the Event-based Asynchronous Pattern
。有關同步操作和非同步操作的更多信息,請參見
同步和非同步操作。

⑸ wcf web服務用什麼調用方法

1. 創建服務

2. 修改介面

為了做演示,我們將默認的那個Operation修改一下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.ServiceModel.Web;
namespace WebApplication1
{
// 注意: 如果更改此處的介面名稱 "INorthwindService",也必須更新 Web.config 中對 "INorthwindService" 的引用。
[ServiceContract]
public interface INorthwindService
{
[OperationContract]
[WebGet(UriTemplate="HelloWorld")]
string HelloWorld();
}
}

注意,我們這里加了一個WebGet的Attribute,這將允許WCF服務直接通過地址調用

3. 實現服務

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace WebApplication1
{
// 注意: 如果更改此處的類名 "NorthwindService",也必須更新 Web.config 中對 "NorthwindService" 的引用。
public class NorthwindService : INorthwindService
{

#region INorthwindService 成員

public string HelloWorld()
{
return "Hello,world";
}

#endregion
}
}

這里的實現依然是我最喜歡的HelloWorld

4. 修改配置文件(web.config),要支持直接通過WebGet的方法調用WCF服務,必須用一個特殊的binding,是webHttpBinding

<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="WebApplication1.NorthwindServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug ="false" />
behavior>
serviceBehaviors>
<endpointBehaviors>
<behavior name="test">
<webHttp/>
behavior>
endpointBehaviors>
behaviors>
<services>
<service behaviorConfiguration="WebApplication1.NorthwindServiceBehavior"
name="WebApplication1.NorthwindService">
<endpoint address="" binding="webHttpBinding" contract="WebApplication1.INorthwindService" behaviorConfiguration="test">
<identity>
<dns value="localhost" />
identity>
endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
service>
services>
system.serviceModel>

上面的粗斜體部分是要添加或者修改的

⑹ php怎麼調用wcf服務,調用參數是對象參數

空格換行如:<p></p>
<p>測試測試</p>
<p>測試測試</p>
<p>測試測試</p>
<p>測試測試</p>
<p>測試測試</p>
<p>測試測試</p>
<p>伊巴黎試客聯盟</p>
<p>測試測試</p>

⑺ PHP調用.net的wcf和webservice服務

PHP要麼用第三方的soap封裝類,或者用自帶的擴展soap client,這個默認是關閉的。需要去php.ini進行修改。

soap client :
$soap = new SoapClient('http://127.0.0.1/soap_ss.php?wsdl');
$reData = $soap->Helloworld(array('in0'=>'Ken'));

具體的傳遞的參數、方法可以直接在瀏覽器訪問查看介面

⑻ .Net開發模式選擇

這樣說明你具有了一定程度的系統設計能力。模塊化業務復用結構就是這個這設計目標。
這樣有幾個問題:
使用一般處理程序來實現我數據讀取的方法,會形成一些信息孤島。如果你的整個程序都是與網頁打交道,建議你使用web api技術,api可以跨瀏覽器服務,也有利用將來業務模塊的復用。如果業務較為復雜,建議api只是組裝業務(如果基本認證和幾個業務模塊的組合),而真正的業務模塊可以考慮使用wcf技術。思路是wcf是最小的業務模塊,比如wcf中存在身份認證功能,存在token分發功能,存在授權功能,存在基本業務功能,而web api功能可以調用wcf中的授權功能,如果授權成功,則調用wcf的基本業務功能。這樣wcf處於基本業務層(處理業務邏輯與非業務功能需求),而web api可針對不同的wcf功能進行組合封裝,提供給頁面或外部其他企業聯合調用。wcf進行系統化分部分,而且考慮到wcf的分布部署等多重部署方案,wcf其中一個節點失效則可以使用另一個部署節點。如果單純的是一般處理程序,則在部署時需要考慮使用負載均衡進行地址的轉換,對於將來這種鬆散的維護等都不是優勢。
其他的條目其實只說明了前端。前端在整個系統架構中只是極小的一部分而已。至於前端使用何種方式調用,那隻是處於安全等各個方面的考慮而定義的。在我看來,使用ajax調用,其實你的意思只是實現了無刷而已(無刷新頁面而調用數據),這種方案實現的方案有很多,比如.net中存在多個無刷控制項可以使用。但事實上刷新頁面還是局部刷新(無刷)都只是頁面的體驗問題,整個系統設計時,並不是設計的前端,而是整個系統——要考慮到將來的維護成本,還有復用率等等多種因素,前端是否無刷也只是系統設計中的一個而已。比如後端在設計時,不管你使用handler還是api,它與你頁面表現沒有任何關系。
你使用模塊開發這個概念是不正確的,這里是層級開發,不是模塊開發,模塊指的是業務分布問題,而層級指的是業務調用問題,如果說模塊,你其實應該說進鎖存分為三個子系統:進、銷、存這個三個系統模塊(註:模塊有大有小,一個子系統是一個模塊,一個功能也是一個模塊)
web api的調用有多種,頁面後端(aspx頁面可以調用,伺服器調用,但如果涉及到伺服器調用時,建議使用伺服器直接調用wcf即可,當然也可以調用api根據不同的功能特性而定),瀏覽端調用(javascript或ajax等封裝庫調用),api的做用是跨瀏覽器(可被手機瀏覽器或其他應用程序調用,也叫跨終端),wcf的做用是跨語言(可供不同的語言調用,如php/java等後端調用)及業務基礎邏輯的定義,其他wcf也可以被瀏覽器調用,但這種形式的wcf叫wcf restful風格(事實上web api就是在http協議上來代替wcf restful的,wcf restful是使用soap協議)。
然後我這里給你介紹一下handler與web api的區別:
handler其實是對請求-應答過程中的事件進行了定義,在iis的19個事件中定義其process功能然後進行返回,換句話來說,handler會自動注冊,然後請求到達時執行相關的handler,最後流程走到process事件中,這個都是handler定義好的(就是你直接使用的一般處理程序),如果你需要定義其他的事件,那麼必須自定義handler/mole,你可以看到其實一般處理程序就是繼承了一個IHttphanlder的介面原因。而web api則是對所有事件進行處理而衍生的一個開發框架(web api在mvc4中出現,由於其比交好用,在mvc5中駁離,而形成新的輕量級開發架框web api 2.0,所以web api現在還保留著其mvc開發風格)
所以web api非常適應你說的情況。也就是說你將來的網站後台有兩部分組成,一部分是aspx頁面(或直接html頁面/建議使用shtml),本來應該寫在aspx.cs文件中的內容,全部省略,而寫在前端由javascript/ajax去調用。舉一個不恰當的例子——你的伺服器按鈕(asp:Button/或button runat=server,能觸發伺服器事件的按鈕),本來應該寫到相應的後端事件中,而現在則由前端進行了分解,從而實現頁面級業務分離,達到了復用的功能。可能這樣說不夠直白,假定asp:Button OnClick=serverClickHandler,那麼本來在aspx頁面中應該存在一個serverClickHandler(object sender, EventArgs e)的事件,這個事件就是服務端事件,它會引發頁面刷新。現在我們把serviceClickHandler事件設計成一個web api功能,則asp:Button OnClientClick=ajaxHandler,在ajaxHandler中使用ajax或直接使用javascript去調用一個地址(這個地址就是api地址,它可以返回xml/json/jsonp格式的數據,然後由javascript獲得的數據直接進行處理。使用httphandler也不過如此,所以使用web api則會更有優勢。而且api組裝業務時,如果有兩個頁面需要同樣功能時,aspx寫在後台時,肯定無法重用另一個頁面的中一個事件(其實為了重用,頁面還需要按照命令模式進行設計),而分離的handler還api則不存在這樣的問題,只是前端ajax調用時調用同一地址而已)。
我們再來看一下,為什麼要使用wcf做基礎業務邏輯。如果你的web api/handler出現一個問題,幾乎所有的handler都需要認證(認證調用者身份,然後處理不同的業務),相把相同的部分提出來(認證調用者身份),這樣就形成了兩者基礎業務邏輯,如果認證模塊發生了變化,則基礎業務進行修改就是,不會影響調用者的任何代碼;但如果認證調用者身份沒有復用,那麼一個個地修改,這事是每個程序員的惡夢——當然,你可以完全考慮使用一個抽象類,讓需要調用的功能繼承,但這里我只是說的業務復用,如果真是僅僅的身份驗證是沒有問題的,但業務中並非簡單的業務,業務是可拆分的,拆分後可能會被不同的業務調用,而且沒有多少共性,這時涉到的就是業務組裝,不可能使用繼承的方法完成的。這就是使用wcf做基本業務邏輯處理層的原因之一(其他的是考慮業務有效性、穩定性、吞葉量等)。
後端編程,如果技術團隊還行的話,可以考慮使用aop(面向切面編程),因為大多數的情況,一個基礎業務可能會涉及到日誌記錄等等,每個都存在這樣的方式時,就考慮使用切面編程(切片編程)的編程風格,對將來的系統更易於維護。

這么說吧,設計一個系統是架構師的事,其實要考慮的內容多了去了,目標也不是僅僅的業務能走通,而是考慮到開發周期,維護成本等等諸多方面。

⑼ 調用WCF服務端方法,方法執行時間過長,怎麼處理比較合理

加速演算法
多線程!

熱點內容
手機ea伺服器連不上怎麼辦 發布:2025-05-15 01:35:03 瀏覽:450
資料庫數據插入語句 發布:2025-05-15 01:30:01 瀏覽:871
js是無需編譯直接運行嗎 發布:2025-05-15 01:28:30 瀏覽:476
android文件夾重命名 發布:2025-05-15 01:13:50 瀏覽:481
cns腳本 發布:2025-05-15 01:13:38 瀏覽:722
數據結構與演算法筆試題 發布:2025-05-15 01:04:20 瀏覽:417
搜狗輸入法如何直接編輯配置文件 發布:2025-05-15 00:51:47 瀏覽:668
電箱都有哪些配置 發布:2025-05-15 00:30:21 瀏覽:74
安卓qq邀請碼在哪裡尋找 發布:2025-05-15 00:02:04 瀏覽:35
三菱fx編程口 發布:2025-05-15 00:01:23 瀏覽:810