2013-04-02 54 views
0

基本上我的想法是開發將在Windows如何webservicemethod在窗口服務調用

運行一個代理我創建了成功運行Windows服務的應用程序,我已經集成在Windows服務應用程序中運行的Web服務代碼在Windows服務。

如何在客戶端點擊我的網址時調用該Web服務方法?

如何形成可調用Web服務方法獲取方法返回值的url?

+1

_Did你試過到目前爲止什麼?_展示你的工作.. –

+1

這個問題太廣,爲了人幫你,請儘量問一個具體問題,例如在你的問題中,目前尚不清楚,天氣你需要架構指導或特定的代碼示例。 – alykhalid

+0

@sandeep它取決於Web服務類型。請參閱我的答案,以及調用REST和SOAP Web服務的說明 –

回答

2

好的,我會盡力回答。

  • 讓我們假設你想打電話給RESTweb service。你需要什麼? A HttpClient和(可能)JSON/XML Serializer。您可以使用RestSharp

    var client = new RestClient("http://example.com"); 
    // client.Authenticator = new HttpBasicAuthenticator(username, password); 
    
    var request = new RestRequest("resource/{id}", Method.POST); 
    request.AddParameter("name", "value"); // adds to POST or URL querystring based on Method 
    request.AddUrlSegment("id", 123); // replaces matching token in request.Resource 
    
    // easily add HTTP Headers 
    request.AddHeader("header", "value"); 
    
    // add files to upload (works with compatible verbs) 
    request.AddFile(path); 
    
    // execute the request 
    RestResponse response = client.Execute(request); 
    var content = response.Content; // raw content as string 
    
    // or automatically deserialize result 
    // return content type is sniffed but can be explicitly set via RestClient.AddHandler(); 
    RestResponse<Person> response2 = client.Execute<Person>(request); 
    var name = response2.Data.Name; 
    
    // easy async support 
    client.ExecuteAsync(request, response => { 
        Console.WriteLine(response.Content); 
    }); 
    
    // async with deserialization 
    var asyncHandle = client.ExecuteAsync<Person>(request, response => { 
        Console.WriteLine(response.Data.Name); 
    }); 
    
    // abort the request on demand 
    asyncHandle.Abort(); 
    

    不需要使用RestSharp,沒有像RestSharp

樣品調用REST Web服務庫使用內置.NET類,或。對於簡單的情況下HttpWebRequest(+ DataContractJsonSerializaer或XML模擬)將是恰到好處

  • SOAP Web服務? 按照說明提供here