Использование службы wcf с использованием HttpWebRequest c #

1
HttpWebRequest req = null;
HttpWebResponse res = null;

const string url = http://localhost/MyService/EService.svc/CreateMethod";

req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.ContentType = "application/json; charset=utf-8";

req.Headers.Add("App", "Application");
ASCIIEncoding encoder = new ASCIIEncoding();
byte[] data = encoder.GetBytes("{ itemlist: 'sasfs' }");
req.ContentLength = data.Length;

res = (HttpWebResponse)req.GetResponse();
Stream responseStream = res.GetResponseStream();
var streamReader = new StreamReader(responseStream);

string txt = streamReader.ReadToEnd();
streamReader.Close();
streamReader.Dispose();

responseStream.Close();
responseStream.Dispose();

Я должен использовать вышеприведенный код для использования службы, но я получаю разные errors-. 1) Вы должны предоставить тело запроса, если вы установите ContentLength> 0.... Что такое код, который мне не хватает именно здесь.

  • 1
    Вы никогда не устанавливаете содержание запроса.
  • 0
    Можете ли вы дать мне пример
Теги:
wcf
httpwebrequest

1 ответ

1
Лучший ответ

Вам не хватает нескольких строк кода. Вы устанавливаете только ContentLength, но не записываете контент.

req.ContentLength = data.Length;

//Write request data(setting content of request)
Stream reqStream = req.GetRequestStream();
reqStream.Write(data, 0, data.Length);
reqStream.Close();

res = (HttpWebResponse)req.GetResponse();
  • 0
    Теперь, если я хочу добавить параметры тогда?
  • 0
    Тогда вам, вероятно, нужно отформатировать ваш URL. Посмотрите на этот пример
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню