HttpListener响应OPTIONS请求

时间:2011-11-02 19:26:05

标签: c# http httpwebrequest httplistener

我有一个基于HttpListener的控制台应用程序。它使用自定义标头来确定控制台客户端尝试执行的功能(基于HttpWebRequest并且运行良好)。

我的一位朋友正在尝试使用另一个平台为此应用创建客户端,该平台要求在使用自定义标头时,它首先向服务器发送OPTIONS请求。

没有进入关于我为什么或不使用IIS,或者我的朋友正在使用哪个客户端软件包等的宗教辩论,是否有人对如何正确回应选项请求有任何见解?我似乎无法找到有助于此的参考。从我收集的内容中,我需要回复一下,我允许OPTIONS,GET,PUT以及某些我接受的自定义标题列表。

更多背景(11/3/11)

我知道HttpListener将允许OPTIONS请求 - 我的挑战是如何格式化和制作响应以显示我允许OPTIONS,GET,PUT以及我接受使用HttpListenerResponse的自定义标头列表。

我的典型响应代码如下:

        try
        {
            // set the status code
            HttpListenerResponse response = context.Response;
            response.StatusCode = status;

            // build the HTML output
            string output_string;

            if (obj is string)
            {
                output_string = obj.ToString();
            }
            else
            {
                output_string = ia_serialize_xml<T>(obj);
            }

            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(output_string);
            response.ContentLength64 = buffer.Length;
            Stream output = response.OutputStream;
            output.Write(buffer, 0, buffer.Length);
            output.Close();
        }
        catch (Exception e)
        {
            ia_exception("ia_sendresponse", "General exception sending response " + status, e);
            return;
        }

我似乎无法辨别出如何对上述OPTIONS请求的响应做同样的事情。 (请忽略“ia_ *”方法,但它们应该是非常自我解释的)

0 个答案:

没有答案