謝謝您的回答。
我對我的API的一部分使用SOAP,但我也使用webhttp端點 進行REST風格的xhr調用和JSON響應。我已經能夠在節目中做到這一點 別處:
var url = "trade.svc/GetCategoryChildren/" + parentID + "/json";
var httpStatus;
xmlhttp.open("GET", url, true);
xmlhttp.send(null);
我試圖做同樣的事情對我的上傳服務,但是,正如你所指出 出來,收集List<Upload> request = new List<Upload>();
是C#,JavaScript不 和我我不太確定如何以REST方式傳遞參數。這可能嗎? 想法感激?
<service behaviorConfiguration="Default" name="WebClient.UploadService">
<endpoint address="json" behaviorConfiguration="WebHttpEPBehavior"
binding="webHttpBinding" name="MyJSONUploadEP" contract="WebClient.IJSONUploadService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:2534/Web/upload.svc" />
</baseAddresses>
</host>
</service>
響應薩哈 -
請求應類似於我在以前的文章中概述的XMLHTTP請求對象。您希望將您的端點作爲xmlhttp.open(「GET」,url,true)中的URL參數傳遞。你的參數應該遵循相同的約定:「service.svc/function/param1/param2/param3」。
在服務器上,您想要將服務的綁定設計爲webHttpBinding - 在我的發佈配置文件中查看MyJSONUploadEP。然後,在您的合同中(在我的示例中爲WebClient.IJSONUploadService),您希望爲請求的方法指定帶有JSON重定義格式的WebGet屬性。在我的合同,我有:
[WebGet(UriTemplate = "GetCategoryChildrenJSON/{parentID}/{format}", ResponseFormat = WebMessageFormat.Json)]
Tuple<string, int> GetCategoryChildren(string parentID, string format);
順便說一句,我認爲應該有不同的響應格式不同的合同(IJSONUploadService.cs,IPOXUploadService.cs和ISOAPUploadService.cs根據需要然後將其繼承)。因此,舉例來說,您的WCF類看起來是這樣的:
public class UploadService : IJSONUploadService
如果你想在你的JSON響應返回一個整數數字,你應該設計具有get/set整數類型的支撐類 - 東西像:
public class Items
{
public int PropA { get; set; }
public int PropB { get; set; }
public int PropC { get; set; }
public int PropD { get; set; }
public int PropE { get; set; }
etc...
}
然後,從數據庫中檢索數據後,你將需要填充 您(在這種情況下,類型項目)名單:
List<Items> categories = new List<Items>();
接下來,您將需要序列化您的發送 到客戶端的類型項目列表。我正在使用名爲JSONHelper的類來執行此操作,但在Internet上有大量示例。您可以先查找
「System.Runtime.Serialization.Json」命名空間。以下是我對 序列化對象的樣子:
string dtSerialized = JSONHelper.Serialize<List<Items>>(categories);
Tuple<int, int> retParam = new Tuple<int, int>(dtSerialized, errCode);
return retParam;
最後,在客戶端上,你將需要處理使用某種JavaScript的響應處理的JSON響應。這裏有很多這種在線的例子 - 你可能想 嘗試從http://json.org/js.html開始。
HTH, 彼得
馬克 - 我的反應是在上述(或低於) 「接聽」。謝謝你的想法。 – 2009-10-20 14:06:02