2015-01-20 2 views
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 .... Что это код, который мне не хватает именно здесь.Потреблять службы ФОС с помощью HttpWebRequest C#

+1

Вы никогда не устанавливали содержание запроса. – JRLambert

+0

Не могли бы вы привести пример –

ответ

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. Посмотрите на [этот пример] (http://www.stickler.de/en/information/code-snippets/httpwebrequest-post-data.aspx) – Reniuz

+0

Я пробовал этот код, но я получаю error- Удаленный сервер вернулся ошибка: (500) Внутренняя ошибка сервера В строке ниже. HttpWebResponse myHttpWebResponse = (HttpWebResponse) myHttpWebRequest.GetResponse(); –

Смежные вопросы