2009-10-29 3 views
0

Может ли кто-нибудь указать мне на пример, как отправить SOAP Запрос на услугу WCF и вернуть ответ SOAP? Обычно клиент Travel отправляет SOAP-запрос с параметрами поиска и службой WCF Service в базе данных, а затем отправляет соответствующие праздники.Как отправить запрос SOAP в службу WCF?

Я получаю эту ошибку, с помощью метода я использовал: «Удаленный сервер возвратил ошибку: (400) Bad Request»

ответ

1

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

Или служба, которую вы определили, ожидает HTTP GET, а не HTTP POST. Иногда ссылка на дополнительную службу может не генерировать правильный HTTP-глагол для некоторых [WebGet] атрибутов. Возможно, вам придется добавить [WebGet] для операции на стороне клиента вручную.

0

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

Если это буквально первый удар для службы, эта ошибка может возникнуть, если WCF не был правильно зарегистрирован с помощью IIS. В частности, расширение .svc необходимо сопоставить с модулем ISAPI ASP.NET.

0

Либо взглянуть на SoapUI, или найдите WcfTestClient похоронен глубоко в ваших визуальных папках студии (C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE).

Оба могут подключаться к службе WCF и отправлять/получать сообщения SOAP.

Или создать свой собственный маленький клиент, используя svcutil.exe:

svcutil.exe (service URL) 

создаст маленький * .cs файл и * .config файл для вас, которые вы можете использовать для вызова службы.

Marc

0

спасибо, что нашли время, чтобы ответить на этот вопрос. Служба работает нормально, если клиент создает ссылку на мою службу WCF и делает вызов метода, отправляется соответствующий ответ.

Я забыл добавить, что мой клиент отправляет HTTP-запрос на мою службу WCF. Соответствующий ответ затем создается и возвращается Клиенту.

Я могу прочитать запрос HTTP, однако, когда я пытаюсь и получить доступ ответ HTTP, я получаю ошибку - «Удаленный сервер возвратил ошибку: (400) Bad Request»

ошибка происходит когда код достигает этой строки:

 // Get the response. 
     HttpWebResponse response = request.GetResponse() as HttpWebResponse; 

Смотрите код ниже:

private void CreateMessage() 
    { 
     // Create a request using a URL that can receive a post. 
     WebRequest request = WebRequest.Create("http://www.XXXX.com/Feeds"); 
     string postData = "<airport>Heathrow</airport>"; 

// функция пользователя запрос.Метод = "POST";

 byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
     request.ContentType = "application/soap+xml; charset=utf-8"; 
     request.ContentLength = byteArray.Length; 

     Stream dataStream = request.GetRequestStream(); 
     dataStream.Write(byteArray, 0, byteArray.Length); 
     dataStream.Close(); 

     // Get the response. 
     HttpWebResponse response = request.GetResponse() as HttpWebResponse; 

     // Display the status. 
     HttpContext.Current.Response.Write(((HttpWebResponse)response).StatusDescription); 

     // Get the stream containing content returned by the server. 
     dataStream = response.GetResponseStream(); 

     // Open the stream using a StreamReader for easy access. 
     StreamReader reader = new StreamReader(dataStream); 

     // Read the content. 
     string responseFromServer = reader.ReadToEnd(); 

     // Display the content. 
     HttpContext.Current.Response.Write(responseFromServer); 

     // Clean up the streams. 
     reader.Close(); 
     dataStream.Close(); 
     response.Close(); 

    } 

С уважением

Коджо

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