2012-01-20 6 views
1

Я попытался сделать это с помощью restsharp, но не повезло ... поэтому я пытаюсь сделать сообщение в веб-сервисе отдыха. Я получил образец XML как следующее:Проблема при отправке в службу отдыха

<?xml version="1.0"?> 
<root> 
<request> 
<APIClientID>0</APIClientID > 
<Version>0</Version> 
<APIPassword>password</APIPassword > 
<Function>functionName</Function > 
<Params> 
<UserId>(current-datetime)</UserId > 
<page>example.aspx</page> 
<application>appName</application> 
<function>functionName</function> 
</Params> 
</request > 
</root > 

код, который я пытаюсь сделать пост с составляет:

HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; 
     request.Method = "POST"; 
     request.ContentType = "text/xml"; 

     byte[] byteData = UTF8Encoding.UTF8.GetBytes(requestXML); 

     request.ContentLength = byteData.Length; 

     // Write data 
     using (Stream postStream = request.GetRequestStream()) 
     { 
      postStream.Write(byteData, 0, byteData.Length); 
     } 

     HttpWebResponse response = request.GetResponse() as HttpWebResponse; 
     StreamReader reader = new StreamReader(response.GetResponseStream()); 

     string responseString = reader.ReadToEnd(); 

Однако, каждый раз, когда я пытаюсь сделать пост все, что я вернусь это общий ответ от службы. Любая помощь в том, что я могу делать неправильно, будет с благодарностью. Благодаря!

Я предполагаю, что это могло бы помочь опубликовать XML, что я получаю назад от Встаньте на службе ...

<Function>TransAPIStats</Function> 
<Method> 
<post> 
<Description>Post api statistics to the DB via the API.</Description> 
<Params> 
<Client> 
<Required>true</Required> 
<Description>String</Description> 
</Client> 
<Page> 
<Required>true</Required> 
<Description>Integer</Description> 
</Page> 
<Application> 
<Required>true</Required> 
<Description>String</Description> 
</Application> 
<Function> 
<Required>true</Required> 
<Description>String</Description> 
</Function> 
</Params> 
<Return> 
<Result>String</Result> 
<Status>String</Status> 
<Description>String</Description> 
</Return> 
</post> 
</Method> 

Я попытался изменения образца XML, что я дал мне, чтобы соответствовать параметрам, перечисленным в api xml, но он все равно делает то же самое. У меня такое чувство, что это мои проблемы, но, похоже, он не хочет работать ...

ответ

0

Попробуйте это;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
request.Method = "POST"; 
request.ContentType = "application/xml"; 

using (var postStream = new StreamWriter(request.GetRequestStream())) 
{ 
    postStream.Write(requestXML); 
} 

string responseString = null; 
using (var response = (HttpWebResponse)request.GetResponse()) 
using (var dataStream = response.GetResponseStream()) 
using (var reader = new StreamReader(dataStream)) 
{ 
    responseString = reader.ReadToEnd(); 
} 
+0

Благодарим за отзыв! Я внес изменения, но он все еще просто возвращает ответ get. Я добавил некоторые подробности на мой пост, надеюсь, что это даст некоторые подробности, чтобы помочь ... – Arthurdent510

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