2012-01-20 22 views
1

私はrestsharpでこれをやってみましたが、運がないので残りのウェブサービスに投稿しようとしています。休憩サービスに投稿中の問題

<?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 > 

コードIがあるとの記事をやろうとしている:しかし

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を与えました。サービスからの一般的な応答を得る。私が間違ってやっていることの助けがあれば大歓迎です。ありがとう!

私は私がに記載されているパラメータと一致するように私に与えられたサンプル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

ありがとうございます!私は変更を加えましたが、まだ応答を返すだけです。私は私のポストにいくつかの詳細を追加しました。 – Arthurdent510