2011-07-05 32 views
2

私は、TCPソケット経由でJSONメッセージを送受信できるシンプルなC#アプリケーション(.Net 4.0 + WPF)を構築しました。c#app:JSONインターフェイスを実装することは可能ですか?

次のステップとして、ウェブサイトやPHPスクリプト上のJavaScriptアプリケーションは、自分のアプリケーションとの間でJSONメッセージを送受信できます。それは可能ですか?

JS/PHPはステートレスなHTTP接続を使用するため、JS/PHPアプリケーションからアプリケーションにJSONメッセージを送信し、JSONを使用してアプリの応答(HTTP応答)を送信するなど、メッセージ?それも可能ですか?私のアプリケーションとの間でJSONメッセージを送信するには、GETメソッドまたはPOSTメソッドを使用する必要がありますか?

私の質問があまりにも多くの混乱を引き起こさないことを願っています;-)私はしかし、私はあなたが私に与えることができるすべてのヒント、明確化またはフィードバックに感謝します。

マイク

+0

あなたのWPF(ファットクライアント)アプリケーションがJSONメッセージのホストとして機能するのはなぜですか?それは非常に堅牢なサーバーソリューションのようには聞こえません。 –

+0

@Kirk Wollピアツーピアのアプリだから、中央のホスト/サーバは存在しない – Mike

+0

ああ、すべてのユーザがファイアウォールで穴を開けると思う? –

答えて

3

あなたは、例えば、Webメソッドに特殊なJSONディレクティブを使用して.NET Webサービス経由でこれを達成することができます

[ScriptMethod(UseHttpGet = true, ResponseFormat=ResponseFormat.Json)] 
public string DoSomething(string param1, int param2) 
{ 
    // Do Something 
} 

ResponseFormat.Jsonプロパティを指定した場合、返されたデータは、適切なJSON形式にシリアル化されるであろう。また、実際のJSONレスポンスを受け取るには、リクエストしているアプリケーションからcontent-typeを"application/json"に設定する必要があります。それ以外の場合、メソッドはXMLで応答をラップしようとします。

また、このメソッドでHttpGetを有効にして、メソッドにクエリ文字列を使用して投稿できるようにしています。

http://www.example.com/service.asmx?param1='Hello'&param2=1; 
+0

あなたの素早い答えに感謝します!あなたの例に関して2つの質問があります:1.私のアプリケーションは「通常の」WPFアプリケーションなので、IP /ポートのみを持つ場合は問題になります。http://156.25.365.25:4500/ service.asmx?param1 = 'Hello'&param2 = 1; [/ code]? – Mike

+1

@Mike、問題は発生しません。 (あなたのユーザーのファイアウォールを考慮していると仮定していますが) –

+0

2番目の質問:UseHttpGet = trueを使用しているので、JS/PHPアプリケーションはJSONメッセージを常にGETメソッドを使用してアプリケーションに送信する必要があります? – Mike

関連する問題