可以POST到自定义注册的协议/方案

本文关键字:协议 方案 注册 POST 自定义 可以 | 更新日期: 2023-09-27 18:29:11

我正在开发一个web应用程序,该应用程序需要在客户端计算机上调用自定义注册协议。目前,我对协议进行GET,然后通过querystring传递参数。

是否可以对自定义注册的协议进行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方法中,然后提取querystring。

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

编辑1:

这是向自定义注册协议进行发布时的标头。该协议只有1个arg被传递到其中,就像GET一样,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

可以POST到自定义注册的协议/方案

NO-任何自定义协议处理程序基本上都是通过命令行获取信息的。。。无法将POST映射到命令行。。。如果您真的需要这样做,我建议将其作为基于http的Web服务(WCF、SOAP/REST)来实现。。。