2013-03-08 1 views
-2

Привет я Создали службы WCF, контракт на оказание услуг и контракт данных наклеена нижеКак вызвать службу WCF для отдыха с использованием HTTPWebRequest или Webclient?

[ServiceContract] 
public interface IRestWithXML 
{ 
    [OperationContract] 
    [WebInvoke(Method = "Post", UriTemplate = "DoWork", RequestFormat=    WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] 
    string DoWork(Test objtest); 

    [OperationContract] 
    [WebInvoke(Method = "Post", UriTemplate = "Method?test={strtest}", BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] 
    string Method(Test objtest,string strtest); 

}   

[DataContract] 
public class Test 
{ 
    [DataMember] 
    public string id { get; set; } 
} 

Как я должен проверить эти службы в .NET. Я могу проверить методы, изменив метод «Опубликовать» на «GET».

Но я должен проверить эти службы, используя «Опубликовать». Пожалуйста, направляйте меня

благодарит заранее !!!!

ответ

0

Чтобы проверить запрос POST, вы должны изменить некоторые вещи в вашем коде:

[OperationContract] 
[WebInvoke(Method = "POST", UriTemplate = "DoWork", RequestFormat=WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] 
string DoWork(Stream objtest); 

Вы можете установить параметр для потока.

В реализации DoWork (Stream objtest):

public string DoWork(Stream objtest) 
{ 
    StreamReader sr = new StreamReader(stream); 
    string s = sr.ReadToEnd(); 
    sr.Dispose(); 
    NameValueCollection collection = System.Web.HttpUtility.ParseQueryString(s); 
    return collection.ToString(); 
} 

Для проверки вы спрашиваете, вы должны использовать клиент REST (Скрипач?) И содержание вас тело будет находиться в коллекции.

Если вы хотите создать запрос в C#:

string body ="&key1=value1&key2=value2"; 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
request.Method = "POST"; 

using (StreamWriter writer = new StreamWriter(request.GetRequestStream())) 
{ 
    writer.Write(body); 
} 

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

Спасибо за ответ .. я пробовал, но я gettin g Удаленный сервер возвратил ошибку. Ошибка метода не разрешена – Parthi

5

Тот факт, что вы используете WCF и атрибут WebInvoke не означает, что вы можете искать более общих терминах.

Вы просто ищете способ, чтобы «тест POST для REST службы», и если вы печатаете что в ваш любимый веб-поисковой системы, следующие хиты могут оказаться:

Эти результаты поиска будут вести вас, среди прочего:

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