HttpWebRequest запрос с "?"в URL API - PullRequest
0 голосов
/ 23 марта 2012

Я пытаюсь получить ответ API REST, но URL-адрес API содержит "?"в URL (см. пример ниже).

HttpWebRequest request = WebRequest.Create("http://api.mydomain.com/news/?tag=sports") as HttpWebRequest;

Есть ли способ избежать этого?

Я пробовал Uri.EscapeUriString и HttpUtility.HtmlEncode, но это тоже не работает.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 23 марта 2012

Сначала вы должны создать запрос с URL без параметров.

        HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://api.mydomain.com/news/");
        req.Method = "POST";
        req.ContentType = "application/x-www-form-urlencoded";

После этого вы создаете строку для публикации параметров.

        strParams = "tag=" + strTag; 
        req.ContentLength = strSaida.Length;

Тогда напиши.

        stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
        stOut.Write(strParams);
        stOut.Close();

Это то, что тебе нужно?

1 голос
/ 23 марта 2012

Вам не нужно ничего избегать.? - это то, что отделяет часть пути URL-адреса от части строки запроса.http://api.mydomain.com/news/?tag=sports - это совершенно правильный URL.

Или, возможно, ваш API ожидает: http://api.mydomain.com/news/sports?Трудно сказать, не зная, какой API вы пытаетесь использовать.

0 голосов
/ 23 марта 2012

Попробуйте передать объект Uri вместо строки в метод Create().

HttpWebRequest request = WebRequest.Create(new Uri("http://api.mydomain.com/news/?tag=sports")) as HttpWebRequest;

Как добавить строку запроса в httpwebrequest

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...