我想創建一個IIS託管的Web服務,我將消耗使用通用的Windows應用商店的AOO(的Windows Phone/Windows 8.1中/ Windows的RT)。創建/使用WCF和通用應用程序消耗REST WebService的
據我瞭解使用「添加服務引用」,所以我需要創建一個RESTful Web服務和消費手動它的普及應用通用應用程序不支持代理類生成和SOAP調用。
我試過幾十個教程,並在整個網絡接近,但我從來沒有設法實際上POST數據到web服務。
我需要發送其在一個共享庫的web服務定義的自定義類的對象。我知道我需要序列化對象並將其包含在POST請求中,但無論我嘗試什麼,我都會遇到不同的問題 - 例如HTTP 400錯誤請求:傳入消息具有意外的消息格式「原始」。預期的操作消息格式是'Xml'; 'Json的'。
我已經看到了幾種方法來手動設置內容類型頭,但是我發現沒有提供一個通用的應用程序的方法。
有人可以提供信息,或者是裝修我的方案(通過通用的應用程序POST-ING)的例子嗎?
更新1:爲了進一步澄清:我知道WCF是如何工作的,我已經能夠像this post描述來完成一個基本的GET請求。但是我無法將其擴展爲也可以使用POST請求。
一些代碼,我已經試過:
public async static void SendStartup(CustomClass customObject)
{
var httpClient = new HttpClient();
var serialized = JsonConvert.SerializeObject(customObject);
var response = await httpClient.PostAsync("http://localhost:49452/Metrics.svc/LogStartup", new StringContent(serialized));
string content = await response.Content.ReadAsStringAsync();
}
Web服務接口:
[OperationContract]
[WebInvoke(UriTemplate = "LogStartup", Method="POST", BodyStyle=WebMessageBodyStyle.Wrapped)]
string LogStartup(CustomClass obj);
實現:
public void LogStartup(CustomClass obj)
{
// nothing
}
例如,這failes在運行時用上述
提到的錯誤
什麼代碼給你一個問題? – Greg 2014-09-02 19:58:30
您是否閱讀過Web API,或者使用PCL編寫WCF? http://msdn.microsoft.com/en-us/library/gg597391(v=vs.110).aspx http://www.asp.net/web-api – Lloyd 2014-09-02 20:00:25
@Lloyd WCF不支持Windows Phone Store應用程序,所以這是我的替代品。 – leepfrog 2014-09-02 21:11:59