2009-12-10 66 views
0

我正在使用一些Web服務,並且我想一次將請求數組傳遞給Web服務,並且應該爲整個請求數組返回一次輸出。我想一次將請求數組傳遞給Web服務......它可能嗎?

例如,假設我正在通過城市名稱申請城市詳細信息。我想構建城市名稱數組並將其傳遞給Web服務,並在一個響應中獲取所有細節。

我使用ASP.NET

<AirAvailability_6_2> 
<AirAvailMods> 
<GenAvail> 
<NumSeats>1</NumSeats> 
<Class><![CDATA[ ]]></Class> 
<StartDt>20091214</StartDt> 
<StartPt>LON</StartPt> 
<EndPt>AAH</EndPt> 
<StartTm>1200</StartTm> 
<TmWndInd>D</TmWndInd> 
<StartTmWnd>0800</StartTmWnd> 
<EndTmWnd>1400</EndTmWnd> 
<FltTypeInd></FltTypeInd> 
<StartPtInd></StartPtInd> 
<EndPtInd></EndPtInd> 
<IgnoreTSPref></IgnoreTSPref> 
</GenAvail> 
</AirAvailMods></AirAvailability_6_2> 

<AirAvailability_6_2> 
<AirAvailMods> 
<GenAvail> 
<NumSeats>1</NumSeats> 
<Class><![CDATA[ ]]></Class> 
<StartDt>20091214</StartDt> 
<StartPt>LON</StartPt> 
<EndPt>AAH</EndPt> 
<StartTm>1200</StartTm> 
<TmWndInd>D</TmWndInd> 
<StartTmWnd>0800</StartTmWnd> 
<EndTmWnd>1400</EndTmWnd> 
<FltTypeInd></FltTypeInd> 
<StartPtInd></StartPtInd> 
<EndPtInd></EndPtInd> 
<IgnoreTSPref></IgnoreTSPref> 
</GenAvail> 
</AirAvailMods></AirAvailability_6_2> 
+0

這是什麼? – tster 2009-12-10 23:17:37

+0

紅色下面的答案,它的意見,你會得到這個... – sikender 2009-12-10 23:40:56

回答

2

聲明Web方法接受一個數組。聲明web方法返回一個數組。

[WebMethod] 
public CityDetails[] GetCityDetails(string[] names) 
{ 
    /// blah blah 
} 
+1

我已編輯我的問題,並添加請求代碼,我有這個請求傳遞給Web服務...現在我想讓這個請求的數組並將其發送到Web服務..我嘗試它,但它返回錯誤相同的多個標籤...你能告訴我如何寫這個請求在數組.... – sikender 2009-12-10 23:18:36

0

如果您正在談論現有的帶API的Web服務,您無法控制 - 您將不得不堅持使用此服務。換句話說,如果現有的API沒有提供批處理請求,您將不得不一次向服務提供一個請求。

另一方面,如果您正在自己構建服務 - 注意防止您拼寫出API,以便它可以接收一系列請求。

0

如果您可以控制連接的兩端,並且它們都是託管代碼,那麼您可以創建自定義對象(可序列化)並設置web方法以將該對象作爲其參數。

我最近使用JSON(讓我從網頁的客戶端訪問)做了這個。您將Web服務設置爲接受字符串參數,並使用JSON解串器(DataContractJsonSerializer是一種選擇)將請求轉換爲您的自定義對象。

這使您能夠傳遞多個請求的細節,並以相同的方式(定製集合對象)傳回結果。

讓我知道這是如何解決你的。

加布裏埃爾

相關問題