我需要關於如何將在服務器上捕獲的錯誤消息返回給客戶端的建議。我正在創建WCF Restfull服務,並能夠在使用GET方法時返回錯誤消息。但幾乎找不到從POST方法返回錯誤消息的正確方法。WCF Restful POST返回從服務器到客戶端的錯誤消息
EDITED
對於@Abd:
我一直在使用拋WebFaultException嘗試,如下面的代碼:
try
{
newbudgetid = _service.Create(budgettrx);
}
catch (Exception ex)
{
error_message = ex.Message;
MyCustomErrorDetail customerror = new MyCustomErrorDetail(
"Error", error_message);
throw new WebFaultException<MyCustomErrorDetail>(customerror, HttpStatusCode.NotFound);
}
這是類定義:
public class MyCustomErrorDetail
{
public MyCustomErrorDetail(string errorInfo, string errorDetails)
{
ErrorInfo = errorInfo;
ErrorDetails = errorDetails;
}
[DataMember]
public string ErrorInfo { get; private set; }
[DataMember]
public string ErrorDetails { get; private set; }
}
在客戶端代碼上,應該如何我寫從服務器的錯誤輸出?
BudgetTransactionRequest bt = new BudgetTransactionRequest
{
transaction_code = "7PRM007690 ",
category = "Expenses",
claim_status = "Presales ID",
amount = "320000.00000",
application_type = "Payment Request",
opportunity = "BSMD000586",
project = null,
request_date = new DateTime(2013, 03, 09),
request_status = "Validated",
owner = "nurul.wiiyanti",
};
WebClient proxy = new WebClient();
proxy.Headers["Content-Type"] = "application/json";
MemoryStream ms = new MemoryStream();
DataContractJsonSerializer serialize = new DataContractJsonSerializer(typeof(BudgetTransactionRequest));
serialize.WriteObject(ms, bt);
byte[] data = proxy.UploadData("http://10.10.64.19:8082/Service1.svc/CreateBudgetTransaction/", "POST", ms.ToArray());
Stream stream = new MemoryStream(data);
DataContractJsonSerializer obj = new DataContractJsonSerializer(typeof(BudgetTransactionRequest));
嗨@Abd:我編輯根據您的意見,我的問題。 – Icon
在客戶端代碼上,只需讀取狀態碼的http狀態碼「response.StatusCode」和內容「response.Content.ReadAsString()」即可 – Abd