我正在创建一个与定制嵌入式硬件通信的服务。客户端(自定义硬件)上的代码用C语言编写,用于存储接收数据的缓冲区大小是有限的。服务器端正在返回JSON对象,但如果客户端发送错误请求,它将收到以下内容:
."703"HTTP/1.1 400 Bad Request
.Content-Type: text/html; charset=us-ascii
.Server: Microsoft-HTTPAPI/2.0
.Date: Wed, 26 Oct 2011 11:42:06 GMT
.Connection: close
.Content-Length: 326
.
.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""_http://www.w3.org/TR/html4/strict.dtd">
.<HTML><HEAD><TITLE>Bad Request</TITLE>
.<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
.<BODY><h2>Bad Request - Invalid Verb</h2>
.<hr><p>HTTP Error 400. The request verb is invalid.</p>
.</BODY></HTML>
以下两种方法以正确和错误的请求返回所需格式(JSON)的响应:
[WebGet(UriTemplate = "StoreData/sid={SessionID}&Data={UserData}", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
public string StoreData(string SessionID, string UserData)
{
string ID = DBWorks.StoreUserData(SessionID, UserData);
return ID;
}
[WebGet(UriTemplate = "*", ResponseFormat = WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.Bare)]
public string GenreateErrorMessage()
{
return "error";
}
是否有可能以与GenerateErrorMessage()类似的方式创建一个返回短消息的方法,例如“无效动词”而不是html内容?
如果有人建议如何为所有错误请求返回自定义(JSON)内容,我将不胜感激,因此具有小缓冲区的客户端将能够处理内容。
在服务器端,WCF服务托管在托管应用程序中。