Create Restful service response with respective HTTP
codes in C#
Restful service has some HTTP standard Codes, Each
error code have their separate meaning in establishing the service. Even Error
codes explain the status of the Restful Service. Below is the piece of code
that assigns status code for the service.
For below function we need to give input as Json string
and Append ampersand with it. As example below
{“Message”: “Created
Successfully”} & 201
public Stream
CreateResponseFormat(string StrResponse)
{
WebOperationContext.Current.OutgoingResponse.ContentType
= "application/json; charset=utf-8";
var responseCode = StrResponse.Split('&');
string statusCode = responseCode[1].ToString();
switch (statusCode)
{
case "200":
WebOperationContext.Current.OutgoingResponse.StatusCode
= HttpStatusCode.OK;
break;
case "201":
WebOperationContext.Current.OutgoingResponse.StatusCode
= HttpStatusCode.Created;
break;
case "409":
WebOperationContext.Current.OutgoingResponse.StatusCode
= HttpStatusCode.Conflict;
break;
case "400":
WebOperationContext.Current.OutgoingResponse.StatusCode
= HttpStatusCode.BadRequest;
break;
case
"503":
WebOperationContext.Current.OutgoingResponse.StatusCode
= HttpStatusCode.ServiceUnavailable;
break;
case "504":
WebOperationContext.Current.OutgoingResponse.StatusCode
= HttpStatusCode.GatewayTimeout;
break;
case "422":
WebOperationContext.Current.OutgoingResponse.StatusCode
= (HttpStatusCode)422;
break;
case "204":
WebOperationContext.Current.OutgoingResponse.StatusCode
= HttpStatusCode.NoContent;
break;
case "404":
WebOperationContext.Current.OutgoingResponse.StatusCode
= (HttpStatusCode)404;
break;
default:
WebOperationContext.Current.OutgoingResponse.StatusCode
= HttpStatusCode.BadRequest;
break;
}
return new MemoryStream(Encoding.UTF8.GetBytes(responseCode[0]));
}
Some HTTP status
code and Messages are below:
100
Continue
101
Switching Protocols
102
Processing
200
OK
201
Created
202
Accepted
203
Non-authoritative Information
204
No Content
205
Reset Content
206
Partial Content
207
Multi-Status
208
Already Reported
226 IM Used
300
Multiple Choices
301
Moved Permanently
302
Found
303
See Other
304
Not Modified
305
Use Proxy
307
Temporary Redirect
308
Permanent Redirect
400
Bad Request
401
Unauthorized
|
402
Payment Required
403
Forbidden
404
Not Found
405
Method Not Allowed
406
Not Acceptable
407
Proxy Authentication Required
408
Request Timeout
409
Conflict
410
Gone
411
Length Required
412
Precondition Failed
413
Payload Too Large
414
Request-URI Too Long
415
Unsupported Media Type
416
Requested Range Not Satisfiable
417
Expectation Failed
418
I'm a teapot
421
Misdirected Request
422
Unprocessable Entity
423
Locked
424
Failed Dependency
|
426
Upgrade Required
428
Precondition Required
429
Too Many Requests
431
Request Header Fields Too Large
444
Connection Closed Without Response
451
Unavailable For Legal Reasons
499
Client Closed Request
500
Internal Server Error
501
Not Implemented
502
Bad Gateway
503
Service Unavailable
504
Gateway Timeout
505
HTTP Version Not Supported
506
Variant Also Negotiates
507
Insufficient Storage
508
Loop Detected
510
Not Extended
511
Network Authentication Required
599
Network Connect Timeout Error
|