RestSharp RestResponse - is truncating content to 64 kb

Hi, I am using RestSharp to create a request to my web API. Unfortunately, it response.contentdoes not contain the complete answer that I can see when I execute a request through a browser or violinist. Content is truncated to 64 kb. I am attaching my code below.

Could you advise what can solve this problem?

var request = new RestRequest("Products?productId={productId}&applicationId={applicationId}", Method.GET);
request.RequestFormat = DataFormat.Json;
request.AddParameter("productId", id, ParameterType.UrlSegment);
request.AddParameter("applicationId", Settings.ApplicationId, ParameterType.UrlSegment);
request.AddHeader("X-AppKey", token.AppKey);
request.AddHeader("X-Token", token.Token);
request.AddHeader("X-IsWebApi", "true");

RestResponse response = (RestResponse) client.Execute(request);

if (response.StatusCode == HttpStatusCode.Found)
{
    // The following line failes because response.Content is truncated.
    ShowProductModel showProductModel =
        new JavaScriptSerializer().Deserialize<ShowProductModel>(response.Content);

   // Do other things.
   return ShowProductApi(showProductModel, q, d, sort, breadcrumb);
}
+1
source share
2 answers

, HttpStatusCode.Found . HFC Status Code 302, . , . "" , , , . 200 (). HTTP , , .

( GitHub), . WebApi, ( ) , WebApi.

ValuesFound, HTTP- 302/:

public class ValuesFoundController : ApiController
{
    public HttpResponseMessage Get(int count)
    {
        var result = Request.CreateResponse(HttpStatusCode.Found, Values.GetValues(count));
        return result;
    }
}

, 200/OK:

public class ValuesOkController : ApiController
{
    public HttpResponseMessage Get(int count)
    {
        var result = Request.CreateResponse(HttpStatusCode.OK, Values.GetValues(count));
        return result;
    }
}

:

private static void ProcessRequest(int count, string resource)
{
    var client = new RestClient("http://localhost:61038/api/");
    var request = new RestRequest(resource+"?count={count}", Method.GET);
    request.RequestFormat = DataFormat.Json;
    request.AddParameter("count", count, ParameterType.UrlSegment);
    RestResponse response = (RestResponse) client.Execute(request);
    Console.WriteLine("Status was                : {0}", response.StatusCode);
    Console.WriteLine("Status code was           : {0}", (int) response.StatusCode);
    Console.WriteLine("Response.ContentLength is : {0}", response.ContentLength);
    Console.WriteLine("Response.Content.Length is: {0}", response.Content.Length);
    Console.WriteLine();
}

count - , resource - ( ValuesOk ValuesFound), .

, HTTP. , 200, , 64 , "" , "" .

9999 :

How many things do you want returned?
9999
Waiting on the server...
Status was                : OK
Status code was           : 200
Response.ContentLength is : 109990
Response.Content.Length is: 109990

Status was                : Redirect
Status code was           : 302
Response.ContentLength is : 109990
Response.Content.Length is: 65536

, RestSharp ? , , . , , , , 64 , .

, Fiddler , , 300 (), 302/Found, , HTML-, , . Http "Location".

+1

, RestSharp HttpWebRequest .NET Framework. DefaultMaximumErrorResponseLength. , - 64 .

RestRequest.

:

 HttpWebRequest.DefaultMaximumErrorResponseLength = 1048576;

 var request = new RestRequest("resource" + "/", Method.POST)
    {
        RequestFormat = DataFormat.Json,
        JsonSerializer = new JsonSerializer()
    };

, .

+3

All Articles