2013-05-02 46 views
0

我是webservices的新手。我試圖通過這種方式來查看結果:使用參數c調用webservice#

private void Form1_Load(object sender, EventArgs e) 
{ 
    MessageBox.Show(getServiceResult("http://prod.sivaonline.pt/SAG.WS.SIVA.SVOLB2C/ViaturasNovas.asmx?wsdl")); 
} 

public string getServiceResult(string serviceUrl) 
{ 
    HttpWebRequest HttpWReq; 
    HttpWebResponse HttpWResp; 
    HttpWReq = (HttpWebRequest)WebRequest.Create(serviceUrl); 
    HttpWReq.Method = "GetMarcas"; 
    HttpWResp = (HttpWebResponse)HttpWReq.GetResponse(); 
    if (HttpWResp.StatusCode == HttpStatusCode.OK) 
    { 
    //Consume webservice with basic XML reading, assumes it returns (one) string 
    XmlReader reader = XmlReader.Create(HttpWResp.GetResponseStream()); 
    while (reader.Read()) 
    { 
     reader.MoveToFirstAttribute(); 
     if (reader.NodeType == XmlNodeType.Text) 
     { 
     return reader.Value; 
     } 
    } 
    return String.Empty; 
    } 
    else 
    { 
    throw new Exception("Error on remote IP to Country service: " + HttpWResp.StatusCode.ToString()); 
    } 
} 

現在,它不給我任何消息框。這是正常的嗎?我想添加一些參數,如:

configurador=true 

回答

2

Visual Studio通過在客戶端爲它們創建代理類來調用Web服務很容易。您創建代理類的對象並調用其各自的方法,這些方法由框架在內部轉換爲SOAP調用。只需右鍵單擊您的項目並使用添加服務參考而不是使用HttpWebRequest

+0

好的,我做到了。現在,我可以檢索一個字符串與XML? – Hahn86 2013-05-02 10:51:32

+0

對於任何可序列化類型,您可以在您的服務中定義一個方法並將其返回類型設置爲該方法。爲了返回或發送XML,最簡單的選擇是將函數的參數(或返回)類型設置爲字符串。其他更復雜的選項也可用。 – dotNET 2013-05-02 12:32:46

+0

我不理解。正如我所說,我是webservices的新手,我無法更改webservice,我只是想在我的應用程序中訪問它,並獲取一些數據。例如,GetMarcas方法位於web服務中,並獲取服務器數據庫中的所有汽車商標,並且該方法具有參數,如「active = true」。我應該如何獲得積極的商標? – Hahn86 2013-05-02 13:01:34