2012-03-28 6 views
2

私は、カスタム登録プロトコルをクライアントコンピュータで呼び出すために必要なWebアプリケーションを開発しています。現在、私はプロトコルにGETを行い、その後、パラメータをクエリ文字列に渡します。カスタム登録プロトコル/スキームにPOSTすることはできますか?

カスタム登録されたプロトコルにPOSTを実行することはできますか?その場合は、CustomProtocol.exe内でヘッダー情報を抽出するにはどうすればよいですか?

これはjavascriptの

Custom://startup?Function=DoSomething&Value1=Test&Value2=Test 

私は私のマシン上に登録されたカスタム・プロトコルからのコールを開始することが私の現在のGETソリューション

です。

[HKEY_CLASSES_ROOT\Custom\shell\open\command] 
@="\"CustomProtocol.exe\" \"%1\"" 

次に、CustomProtocol.exeを生成するために以下のコードをコンパイルしました。実行中にURIがMainメソッドに渡され、次にクエリー文字列が抽出されます。

namespace CustomProtocol 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      // Get the querystring from the URI being passed in 
      // Business code... 
     } 
    } 
} 

EDIT 1:

カスタム登録されたプロトコルへの投稿を行うとき、これはヘッダーです。プロトコルは、URIであるGETのように、1つのargだけを渡します。あなたが本当にこれを実行する必要がある場合はどういうわけか私は...

Request URL:http://localhost/CustomWebInvoker/Default.aspx Request Headersview source Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Content-Type:application/x-www-form-urlencoded Origin:http://localhost Referer:http://localhost/CustomWebInvoker/Default.aspx User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.78 Safari/535.11 Form Dataview URL encoded 
     __VIEWSTATE:/wEPDwUKMTkxMDU5NzI4OWRkBWZZppW219Muku6ZjiGZLQG5um8= 
     __EVENTVALIDATION:/wEWCwKz9d77DAK57evuBgLk0vuTDALl+pjzDQKB8r3PAQKk+8X1CwLLneGNCgK2gO/LCAK355HvBAKAseegDAL+ovbYDMmmPuTHB0XbFjGRG9Wl1ij5kObV 
    dlLanguage:English 
    dlApplicationMode:UpdateMode 
    dlCallingApplication:CSS 
    dlCentre:EasternCompCenter 
    btnFastPath:Fast Path 
+1

試してみるとどうなりますか? – BNL

+0

これを行って上記の編集を追加しました。同じ結果、URIだけが渡された唯一の引数であり、私は今までCustomProtocol.exe内のヘッダー情報にアクセスできません。 – silentfrost

答えて

3

NO - any custom protocol handler is basically getting its information via the commandline... there is no way to map a POST to the commandlineヘッダ情報にアクセスすることができましたならば...私は、HTTPベースのWebサービス(WCF、SOAP/REST)としてこれを実装するお勧めします。 ..

+0

これは私が恐れていたケースです。多分私は何かを見落とすことを望んでいたが、私はそうは思わない。応答していただきありがとうございます。 – silentfrost

+0

@silentfrostあなたは歓迎です:-) HTTP要求(GET/POST)をマッピングするオプションが1つあります:http "CGIモジュール"としてハンドラを実装し、それをIISや他のCGI対応のものに統合する必要がありますwebserver(これは、EXEを介してhttp要求を処理するにはかなり古くて妥当ではありません)。 – Yahia

関連する問題