2012-04-30 1 views
2

유사 RestSharp을 : 그는 정말 자신의 코드를 잘못 그가 발견 설명하지 않았다 그러나 https://developer.citrixonline.com/forum/request-not-expected-formatGoToWebinar로는 -하지 예상 형식으로 요청 -이 포럼 게시물에

.

RestSharp를 사용하여 API 호출을하고 있습니다. 다가오는 웹 세미나 목록을 가져 오기 위해 좋은 결과를 얻을 수 있었지만 참가자를 등록하려고 시도 할 때 예상 된 형식 오류가 아닌 400/요청이 계속 발생했습니다. 여기에이 문서 https://developer.citrixonline.com/api/gotowebinar-rest-api/apimethod/create-registrant 다음

, 내 코드입니다 :

var client = new RestClient(string.Format("https://api.citrixonline.com/G2W/rest/organizers/{0}/webinars/{1}/registrants", "300000000000xxxxxx", btn.CommandArgument)); 
var request = new RestRequest(Method.POST); 
request.RequestFormat = DataFormat.Json; 

request.AddHeader("Accept", "application/json"); 
request.AddHeader("Accept", "application/vnd.citrix.g2wapi-v1.1+json"); 
request.AddHeader("Authorization", "OAuth oauth_token=" + System.Configuration.ConfigurationManager.AppSettings["GoToWebinar"]); 

request.AddParameter("firstName", LoggedInUser.FirstName); 
request.AddParameter("lastName", LoggedInUser.LastName); 
request.AddParameter("email", LoggedInUser.Email); 

var response = client.Execute(request); 
var statusCode = response.StatusCode; 

내가 그 오류가 계속 이유를 알아낼 수있는 방법에 대한 통찰력?

감사합니다. 대신 (요청 본문에 키/값 매개 변수를 추가합니다) AddParamter를 사용

답변

1

대신 JSON을 작성해야합니다 :

request.DataFormat = DataFormat.Json; 
request.AddBody(new { 
    firstName = LoggedInUser.FirstName, 
    lastName = LoggedInUser.LastName, 
    email = LoggedInUser.Email 
}); 

당신은 자동으로 수락 설정 핸들러 (취소해야합니다 헤더)를 직접 지정하려면 다음을 입력하십시오.

client.ClearHandlers(); 
+0

정말 고마워요. AddBody 또는 AddParameter를 사용하고 DataFormat = Json으로 설정된 경우 매개 변수에서 Json 본문을 생성하는 옵션이 있다고 생각했습니다. –