2016-08-29 2 views
0

У меня есть один URL с некоторыми специальными символами, такими как | и &. URL-адрес возвращает данные JSON.WebClient.DownloadString не возвращает значение

Когда я пытаюсь использовать этот URL-адрес в браузере, он будет запускаться и возвращать данные json, но когда я пытаюсь использовать WebClient.DownloadString(), это не сработает.

Пример:

Использование браузера:

http://websvr.test.com/abc.aspx?Action=B&PacketList=116307638|1355.00 

Output : 
[{"Column1":106,"Column2":"Buying Successfully."}] 

Использование WebClient.DownloadString():

using (WebClient wc = new WebClient()) 
    { 
     var json = wc.DownloadString("http://websvr.test.com/abc.aspx?Action=B&PacketList=116307638|1355.00"); 

    } 

Output : 
[{"Column1":-107,"Column2":"Invalid Parametrer Required-(RefNo|JBPrice)!"}] 
+2

показать код, пожалуйста, еще никто не может помочь вам – lordkain

+0

Добро пожаловать в StackOverflow, я думаю, вы должны уточнить ваш вопрос немного с примерами того, что вы пытались до сих пор, и что вывод, который вы ожидаете. См. [Как задать вопрос.] (Http://stackoverflow.com/help/how-to-ask) – Marusyk

+0

Не могли бы вы взглянуть на: http://stackoverflow.com/questions/5566942/how-to -get-a-json-string-from-url Как получить строку json из url? –

ответ

0

Попробуйте установить кодировку Webclient перед вызова DownloadString() и шифровать URL с помощью UrlEncode Method:

WebClient.Encoding = Encoding.UTF8; 
var url = WebUtility.UrlEncode("http://websvr.test.com/abc.aspx?Action=B&PacketList=116307638|1355.00"); 
var json = wc.DownloadString(url); 
+0

Я также пытаюсь использовать WebClient.Encoding = Encoding.UTF8; но не работает. –

+0

@NikhilSangani Хорошо, что за ошибка? – Marusyk

+0

Ошибка не отображается, но возвращает пустое значение. –

1

Вы должны кодировать PacketList параметр в вашей URL, потому что она включает в себя характер трубы, которые должны быть закодированы в %7c. Браузеры автоматически кодируют необходимые символы в URL, но вы должны закодировать его в коде вручную.

var json = wc.DownloadString("http://websvr.test.com/abc.aspx?Action=B&PacketList=" + 
        System.Web.HttpUtility.UrlEncode("116307638|1355.00"); 
Смежные вопросы