2013-05-18 4 views
6

RestSharp를 사용하여 클라이언트 측에서 개발하고 있습니다. 나 또한 서버 측에서 내 맞춤 API를위한 Ruby Grape gem을 사용하고있다. 내가 서버에 error 404을 얻고있다 RestRequest에 대한 헤더를 설정하려고 할 때 포도 보석은 완벽한RestSharp 머리글 변경 허용

curl -H Accept=application/vnd.twitter-v1+json /statuses/public_timeline 

작동 콘솔을 통해 application/vnd.twitter-v1+json

에 HTTP 헤더 f.e 그리고 테스트 명령을 수락 설정하여 버전 관리를 할 수 있지만.

왜 그렇게 생각하지 않습니다. 서버가 406 error을 반환하는 또 다른 문제를 발견했습니다. 그러나 제 경우에는 404입니다.

수락 헤더에 사용자 지정 값을 어떻게 넣을 수 있습니까? 당신은 AddHeader 방법으로 사용자 정의 Accept 헤더를 설정할 수 있습니다

답변

5

... 당신은 JSON 자신을 역 직렬화하고자하는 경우

var client = new RestClient("http://example.com/api"); 
var request = new RestRequest("statuses/public_timeline", Method.GET); 
request.AddHeader("Accept", "application/vnd.twitter-v1+json"); 
var response = client.Execute(request); 
var json = response.Content; 

이 잘 작동합니다. RestSharp documentation about deserialization에서 당신을 위해 자동으로 직렬화를 수행하는 일반적인 Execute<T> 방법의 사용을 확인하려면, 당신은 문제가 실행됩니다


...

:

RestSharp 포함 XML과 JSON을 처리하는 디시리얼라이저 RestClient는 응답을 받으면 서버에서 반환 한 Content Type을 기반으로 사용할 올바른 디시리얼라이저를 선택합니다. 기본값은 무시 될 수 있습니다 (사용자 정의 참조). 내장 된 지원되는 콘텐츠 유형은 다음과 같습니다

  • 응용 프로그램/JSON - JsonDeserializer
  • 응용 프로그램/XML - XmlDeserializer
  • 텍스트/JSON - JsonDeserializer
  • 텍스트/XML - XmlDeserializer
  • * - XmlDeserializer

이을 (다른 모든 콘텐츠 형식이 지정되지 않음) 기본적으로 응답의 콘텐츠 형식이 나열된 형식 중 하나가 아닌 경우 RestSharp는 데이터에서 XmlDeserializer를 사용하려고 시도합니다. 이것은 추가 작업을 통해 사용자 정의 할 수 있습니다.