2012-09-11 60 views
2

我有一個web服務,它有它的wsdl和一切工作正常,當我打電話給我的web服務。Webservice方法來調用一個url

我想現在要做的是從我的web服務方法中的某個地方調用一個url。在後面的c#代碼中,我可以這樣做:

Response.Redirect("Insurance.aspx?fileno1=" + txtFileNo1.Text + "&fileno2=" + txtFileNo2.Text + "&docid=" + Convert.ToString(GridView1.SelectedDataKey[2])); 

但是Response.Redirect選項在asmx頁面上不可用。

是這樣的可能嗎?如果是的話,任何人都會感激,可以告訴我如何。我嘗試過到處搜索,但只能找到關於調用Web服務或調用另一個Web服務內的Web服務,但沒有關於從您的Web服務中調用URL的相關主題。任何幫助將不勝感激。

+0

你說的「致電網址」是什麼意思?你的意思是重定向用戶?如果是這樣,您可以通過調用'HttpContext.Current.Response.Redirect(...)'訪問當前的Web服務Response。 –

+0

調用一個url,如「www.insuranceini.com/insurance.aspx?fileno1="+txtfileno1我的客戶調用我的web服務,然後打電話給我的另一個Apis,就像上面的鏈接處理客戶端發送給我的數據。 – user1270384

+0

@Dave Zych你認爲你提到的HttpContext適用於剛剛澄清的場景嗎? – user1270384

回答

3

Response.Redirect方法將狀態碼300發送到瀏覽器,該瀏覽器將用戶引導到新頁面。你要做的是創建一個WebRequest和解析響應:

string url = string.Format("www.insuranceini.com/insurance.asp?fileno1={0}", txtfileno1); 
WebRequest request = HttpWebRequest.Create(url); 
using(WebResponse response = request.GetResponse()) 
{ 
    using(StreamReader reader = new StreamReader(response.GetResponseStream())) 
    { 
     string urlText = reader.ReadToEnd(); 
     //Do whatever you need to do 
    } 
} 

編輯:我包裹WebResponse的和StreamReader的對象,使他們正確處置,一旦你與他們完成using語句。

+0

好吧,讓我試試這個..謝謝!例如,如果我的insurance.aspx有大約5個參數txtfileno1,txtfileno2,用戶名,用戶ID,dteinsured如何將出現在上面提到的網址? – user1270384

+1

我正在使用'string.Format'方法。因此,使用多個參數,您可以執行:'string.Format(「www.insuranceini.com/insurance.aspx?txtfileno1={0}&txtfileno2={1}&username={2}&userid={3}&dteinsured={4} 「,txtfileno1,txtfileno2,username,userid,dteinsured)',其中字符串外的所有內容都是變量。 –