2012-04-30 5 views
2

このフォーラムの投稿と同様に - 期待形式でない要求:彼は本当に彼が彼のコードで間違っていた見つけたものを説明していませんでしたしかし https://developer.citrixonline.com/forum/request-not-expected-formatGoToWebinar - RestSharp

RestSharpを使用してAPI呼び出しを行っています。私は参加者を登録しようとすると、予想される形式のエラーではなく400/Requestを取得し続けることになるが、今後のウェビナーのリストを引き出すためにはうまくいくようになった。ここでは、このマニュアル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ボディをパラメータから生成するオプションがあると思いました。 –

関連する問題