2013-05-14 67 views
0

我是新來的Web服務調用;我可以做簡單的GET並解析JSON輸出。對POST不太好,特別是如果URI有空格和引號。Windows Phone 7.1 WebClient POST無身體

我想發送以下URI到Windows Phone 7.1(模擬器)中的服務器。它說「未找到錯誤」。這個錯誤似乎是通用的;它沒有說什麼是錯的。

https://aaabbb.com//services/v4/put/users/xxxxx/device?deviceId=2NDJDRkI5MEVFME -H '訪問:令牌標記= CXJTY'

沒有JSON體/數據這一點。它只是帶有所示參數的這個URL。那也是數據太多的地方。

我該如何使用WebClient類或RestSharp來做到這一點?我嘗試過使用WP 7中的WebClient類。沒有成功。所以下載了RestSharp;但不知道如何發送沒有任何JSON數據的上述URI。

我跟着這裏的一些帖子來使用WeClient類。它沒有工作。

+0

您發佈的網址無效。你不能有空間。 – 2013-05-14 07:17:33

+0

該URL沒有空格init。它的參數;我認爲參數可以有空格或引號或其他字符。它需要翻譯/編碼。假設沒有空間,它是如何完成的。它有兩個問題。謝謝。 – user702426 2013-05-14 13:37:11

+0

您需要使用Uri.EscapeDataString對URL的參數部分進行編碼,或者使用Uri.EscapeUrlString對整個URL進行編碼。 – Jon 2013-05-14 17:03:31

回答

1

你需要URL編碼你的字符串。爲此,您可以這樣做:

string deviceId = HttpUtility.UrlEncode("2NDJDRkI5MEVFME -H 'Access: Token token=CXJTY'"); 
Uri uri = new Uri("https://aaabbb.com/services/v4/put/users/xxxxx/device"); 
string data = "deviceId=" + deviceID; 
WebClient wc = new WebClient(); 
wc.Headers(HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"; 
wc.UploadStringAsync(uri, data); 
wc.UploadStringCompleted += wc_UploadComplete;