2013-05-14 3 views
0

Я новичок в вызовах веб-службы; Я могу сделать простой 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 с показанными параметрами. thats, где данные тоже.

Как это сделать с помощью класса WebClient или RestSharp? Я пробовал это, используя класс WebClient в WP 7. не удалось. Так скачал RestSharp; но не знаете, как можно отправить вышеуказанный URI без каких-либо данных JSON.

Я следил за некоторыми сообщениями здесь, чтобы использовать класс WeClient. Это не сработало.

+0

Указанный вами URL недействителен. В нем нет пробелов. –

+0

URL-адрес не содержит пробелов init. Его параметры; Я думал, что параметры могут иметь пробел или кавычки или другие символы. Он должен быть переведен/закодирован. Предполагая, что нет места, как это делается. Это два вопроса. Благодарю. – user702426

+0

Вам нужно либо закодировать часть параметра url с помощью Uri.EscapeDataString, либо закодировать весь URL с помощью Uri.EscapeUrlString. – Jon

ответ

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; 
Смежные вопросы