2011-07-27 8 views
1

これは私の状況です。私は、最初のサービスと私のWebアプリケーションの間の仲介役をする別のWCFサービスから、(wcfではなく)第三者のWebサービスを消費しなければなりません。この問題を解決するには、プロキシを生成するためにアプリケーションにWeb/Service Referenceを追加する必要がありますが、参照を追加することはできません。エラーが返される可能性があります。 。WCFサービスからのPOSTによるWebサービスの使用

このサービスは、GETまたはPOSTのいずれかでのみ使用できます。 WebページでjQueryを使ったajax呼び出しからGETとPOSTの両方でサービスを利用することに成功しましたが、C#のwcfサービスの中からサービスをどのように消費するかわかりません。

例では、サービスからの要求をGETである:

http://webservice.server.com/services/myservice?user=[username] &パスワード= [パスワード] &値1 = [someValueの] &値2 = [別の値]

レスポンスは操作のステータスコードとステータスメッセージを含むxmlで、これをデータベースに保存します。

これを行うにはどうすればよいですか?

SOLUTION ...任意の助けのために正しい方向に私を指しているためショーンに

感謝、ありがとうございました。私はそれをやった方法:

参考記事:How to use HttpWebRequest to send POST request to another web server

ASCIIEncoding encoding = new ASCIIEncoding(); 
string postData = "username=" + username; 
postData += ("&password=" + password); 
postData += ("&value1=" + val1); 
postData += ("&value2=" + val2); 
byte[] data = encoding.GetBytes(postData); 

// Prepare POST web request... 
HttpWebRequest myRequest = 
    (HttpWebRequest)WebRequest.Create(new Uri("http://webservice.server.com/services/myservice")); 
myRequest.Method = "POST"; 
myRequest.ContentType = "application/x-www-form-urlencoded"; 
myRequest.ContentLength = data.Length; 
Stream newStream = myRequest.GetRequestStream(); 
// Send the data. 
newStream.Write(data, 0, data.Length); 
newStream.Close(); 

// Get response 
using (HttpWebResponse response = myRequest.GetResponse() as HttpWebResponse) 
{ 
    // Get the response stream 
    StreamReader reader = new StreamReader(response.GetResponseStream()); 

    // Read the whole contents and return as a string 
    result = reader.ReadToEnd(); 
} 

XDocument doc = XDocument.Parse(result); 

// Read XML 

をしてくださいあなたは私の解決策、異議または改善上の任意のコメントを持っている場合は、すべてのコメントは歓迎されています。

答えて

1

私はあなたがのHttpRequestクラスを見てみたいと思う:

http://msdn.microsoft.com/en-us/library/system.web.httprequest.aspx

+1

私は正しい方向に私を指し示すための正しい答えを与えるつもりです。 ..しかし、msdnリンクはあまり役に立たなかったし、実際には代わりにHttpWebRequestを使用して終了したので、私はposします同様の問題を抱えてこの質問に遭遇した人は、私が実際に解決した方法を知ることができます。ご協力いただきありがとうございます! – AJC

1

Webサービスの参照を追加することができない場合は、この操作を行うことができない理由(私はさらに調査でしょうまず、WebClientクラスWebClientまたはHttpReqestクラスを使用して手動でHTTPリクエストを発行する必要があります。

関連する問題