2013-12-09 2 views
0

Мне нужно подражать AJAX-вызову веб-службы в моем консольном приложении. Есть ли способ сделать это с помощью HttpWebRequest? ЗапросПреобразование JavaScript AJAX в HttpWebRequest код

Источник:

вар WebRequest = Sys.Net.WebServiceProxy.invoke ('http://webserver.com/WS_Message.asmx', 'MyMethod', ложно, {р1: аа, р2: бб, р3: 123}, OnSuccess, onFailure, userContext, timeout, enableJsonp, jsonpCallbackParameter);

образца, который не работает:

HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://webserver.com/WS_Message.asmx/MyMethod"); 
request.Method = "POST"; 
request.ContentType = "application/json; charset=utf-8"; 

byte[] _bytes= Encoding.UTF8.GetBytes("{p1:aa,p2:bb,p3:123}"); 

request.ContentLength = _bytes.Length; 

Stream stream = request.GetRequestStream(); 
stream.Write(_bytes, 0, _bytes.Length); 
stream.Close(); 

HttpWebResponse response = (HttpWebResponse) request.GetResponse(); 

using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
{ 
    Console.WriteLine(reader.ReadToEnd()); 
} 
+1

Не могли бы вы опубликовать еще немного информации о том, что вы ожидаете, и о том, что вы сейчас возвращаете? – Lankymart

+0

Уже решена моя проблема. Был связан с неправильными заголовками. –

ответ

1

Похоже, что вы звонили в (.NET) на основе веб-службы в JavaScript. Почему бы просто не добавить веб-ссылку на консольное приложение и назвать это так?

Это будет гораздо меньше, чем попытка повторить вызов веб-службы вручную через HttpWebRequest.

0

Мне нужно было использовать консоль разработчика Chrome, чтобы увидеть правильные заголовки http. Моя проблема связана с неправильным строковым форматом JSON.

@ "{" "p1" ": "" аа" " "" p2 "": "" бб "", "" p3 "": 123}"

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