2017-07-08 178 views
0

我打電話給我服務,你可以看到這樣的:URI格式不WebClient的C#支持

public ReceptionView ReceptionViewByReceptionId(string receptionId) 
    { 
     ClientRequest.Headers["Content-type"] = "application/json"; 
     ClientRequest.Encoding = System.Text.Encoding.UTF8; 
     string result = ClientRequest.DownloadString("http://localhost:1111" + " /ReceptionService.svc/ReceptionViewByReceptionId/" + receptionId); 

     var javascriptserializer = new JavaScriptSerializer(); 
     return javascriptserializer.Deserialize<ReceptionView>(result); 
    } 

但我DownloadString得到這個錯誤:

{"URI formats are not supported."} 

我的服務工程確定,當我打電話給我這樣的瀏覽器服務:

http://localhost:1111/ReceptionService.svc/ReceptionViewByReceptionId/1 

我得到預期的結果。但在我的應用程序中,我可以「T

我的服務接口

[WebGet(UriTemplate = "/ReceptionViewByReceptionId/{receptionId}", RequestFormat = WebMessageFormat.Json, 
    ResponseFormat = WebMessageFormat.Json)] 

    ReceptionView ReceptionViewByReceptionId(string receptionId); 

作爲一個說明我的函數之前的工作沒有任何錯誤,但今天突然返回此錯誤。

我拉琴導致瀏覽器: enter image description here

+0

使用像wireshark或fiddler這樣的嗅探器來學習一些東西。在瀏覽器中使用嗅探器並連接到您的服務並查看消息的格式。它不僅僅是URL和字符串。還有其他標題信息必須包含在內。 – jdweng

+0

@jdweng我在提琴手中追蹤它,但服務網址從未調用過爲什麼? –

+0

結果是200完成,因此連接成功完成。這可能是因爲您的應用程序未完成安裝了錯誤的Cookie而過期或運行。通常,當我調試這些問題時,我建議在更改代碼以從IE瀏覽器中刪除cookie之後,以前的不良結果不會導致混淆。 – jdweng

回答

0

的問題是空間在這裏" /Reception,你可以在URL

string result = ClientRequest.DownloadString("http://localhost:1111" + " /ReceptionService.svc/ReceptionViewByReceptionId/" + receptionId); 

我刪除和每一件事工作得很好看。