2013-05-14 66 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;