2012-03-28 90 views
2

我正在开发一个Web应用程序,需要在客户端计算机上调用定制注册协议。目前我对协议做了GET,然后通过查询字符串传递参数。可能发布到自定义注册协议/方案?

是否可以对自定义注册协议执行POST,如果可以,我将如何去解压缩CustomProtocol.exe中的头信息?

这是我目前的GET解决方案

从JavaScript

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

,我注册到我的机器定制协议发起呼叫。

[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:

这是头做后到自定义注册协议时。该协议只有1个参数传递给它,就像GET是URI一样。不知怎的,如果我只能够访问头信息...

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 2012-03-28 15:27:35

+0

给它一个去,并添加上面的编辑。同样的结果,只有URI是唯一的参数传递,我至今无法从我的CustomProtocol.exe中访问头信息。 – silentfrost 2012-03-30 15:08:01

回答

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 2012-03-30 17:43:41

+0

@silentfrost欢迎您:-)有一个选项可以映射http请求(GET/POST):您需要将您的处理程序实现为http“CGI模块”并将其集成到IIS或其他一些支持CGI的功能网络服务器(这是一个相当古老和不正常的方式处理通过EXE的http请求)。 – Yahia 2012-03-30 17:48:05