我有一个基于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_ *”方法,但它们应该是非常自我解释的)