2015-03-16 11 views
2

Я пытаюсь отправить некоторую информацию JSON на сервер. Я добавляю пресериализованную строку в тело и помещаю некоторые атрибуты в заголовок.Невозможно добавить параметр даты в запросе на отдых (Rest Sharp)

  RestClient client = new RestClient(requURI); 
      RestRequest request = new RestRequest(reqPath, method); 
      request.RequestFormat = DataFormat.Json; 
      request.JsonSerializer.ContentType = "application/json; charset=utf-8"; 

      request.AddHeader("Date", getIsoStringFromDate(DateTime.Now)); 
      request.AddParameter("application/json; charset=utf-8", JSonString, ParameterType.RequestBody); 

Все работает отлично, за исключением даты Заголовок, который не отображается. Когда я изменить строку

  request.AddHeader("Datexxx", getIsoStringFromDate(DateTime.Now)); 

будет показано в заголовке (см трассировки сети)

  System.Net Information: 0 : [5620] ConnectStream#61150033 - Header 
      { 
      Datexxx: 2015-03-16 16:19:39 
      Accept: application/json, application/xml, text/json, text/x-json, text/javascript, text/xml 
      User-Agent: RestSharp 104.1.0.0 
      Content-Type: application/json; charset=utf-8 
      Host: localhost:8080 
      Content-Length: 620 
      Accept-Encoding: gzip, deflate 
      Connection: Keep-Alive 
      } 

Я предполагаю, что «дата» является предопределенным или укажите значение по Rest Sharp.

я добавил определение DateFormat с

  request.DateFormat = "MMMM dd, yyyy"; 

Но нет S еще нет атрибута заголовка даты появляется. Также попробовал очистить все параметры перед добавлением, но не помогает.

Существует ошибка github, касающаяся этого, но ему больше 2 лет. Возможно, я просто пропустил что-то вроде переключателя includeDateInHeader.

Я использую .Net 3.5 и Rest Sharp 104.1.0.0. или 105.1.0.0. Thx заранее!

ответ

0

кажется некоторые атрибуты, такие как типа содержимого или дата не может быть добавлен в качестве параметра, но добавляются внутренне. Для того, чтобы изменить значение «типа контента» Я должен был изменить настройки serialzer (Altough I `t didn использовать его, потому что я добавил в JSON тела, которое было сериализовано раньше!)

RestClient client = new RestClient(requURI); 
RestRequest request = new RestRequest(reqPath, method); 
request.RequestFormat = DataFormat.Json; 
request.Parameters.Clear();    
request.AddHeader("Date", getIsoStringFromDate(DateTime.Now)); 
      request.JsonSerializer.ContentType = "application/json; charset=utf-8"; 

как только я сделал это заголовок, показанный, как предполагалось:

System.Net Information: 0 : [5620] ConnectStream#61150033 - Header 
{ 
Accept: application/json, application/xml, text/json, text/x-json, text/javascript, text/xml 
User-Agent: RestSharp 104.1.0.0 
Content-Type: application/json; charset=utf-8 
... 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^