2016-08-23 4 views
0

Я написал веб-сайт, который вызывает веб-сервис.Как получить тело ответа в веб-сайте кода?

Я хочу получить тело ответа и выполнить некоторую проверку.

public override IEnumerator<WebTestRequest> GetRequestEnumerator() 
    { 


     WebTestRequest request2 = new WebTestRequest("webservice"); 

     request2.Headers.Add("Content-Type", "application/json"); 
     request2.Method = "POST"; 
     request2.Encoding = System.Text.Encoding.GetEncoding("utf-8"); 
     StringHttpBody request2Body = new StringHttpBody(); 

     request2Body.ContentType = "application/json"; 
     request2Body.InsertByteOrderMark = false; 
     request2Body.BodyString = @"{          <body>}"; 
     request2.Body = request2Body; 


     WebTestResponse res = new WebTestResponse(); 
     console.WriteLine(res.BodyBytes); 

     yield return request2; 

     request2 = null; 
    } 

Когда я запустил вышеуказанный код, я не получил никакого ответа на моей консоли.

Как получить тело ответа с помощью кодированного веб-сайта?

+0

Тот же вопрос задан на форумах Microsoft, см. Https://social.msdn.microsoft.com/Forums/vstudio/en-US/944dc265-99d3-41a7-916a-2737e0555e58/how-to-get -The-реакция тела-в-код-WebTest? форум = vstest – AdrianHHH

ответ

1

Есть по крайней мере три проблемы с кодом в вопросе

  1. Код в вопросе не выполняет запрос, прежде чем делать WriteLine. В двух операциях WebTestResponse res = new WebTestResponse(); и console.WriteLine(res.BodyBytes); просто создайте новый объект WebTestResponse (со всеми значениями по умолчанию), а затем попробуйте распечатать часть его содержимого. Запрос выдается кодом, который вызывает ваш метод GetRequestEnumerator.

  2. Объект console не определен. Обычная консоль имеет первую букву в верхнем регистре, то есть Console.

  3. Когда выполняется веб-тест, я не знаю, где будет работать его «консольный» выход. Стандартный вывод веб-теста не является, насколько я знаю, четко определенной.

простой способ получить в теле ответа является использование PostRequest методом WebTestRequestPlugin. Для начала

public class BodyContentsDemo : WebTestRequestPlugin 
{ 
    public override void PostRequest(object sender, PostRequestEventArgs e) 
    { 
     byte[] bb = e.Response.BodyBytes; 
     string ss = e.Response.BodyString; 

     e.WebTest.AddCommentToResult(
      "BodyBytes is " + 
      bb == null ? " null" 
      : bb.Length.ToString() + " bytes"); 

     e.WebTest.AddCommentToResult(
      "BodyString is " + 
      ss == null ? "null" 
      : ss.Length.ToString() + " chars"); 

     // Use bb or ss. 
    } 
} 

Обратите внимание на использование AddCommentToResult для обеспечения записи информации в журнал результатов веб-тестов.

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

  • Нет связанных вопросов^_^