2016-10-31 6 views
1

SendGrid POST抑止:。私はSendGridに電子メールグループの抑止を管理し、私は少し経験を持つC#.NET環境で働いていますのためのGUIを作成しようとしています不正な要求

ドキュメントは、I 2つのエンドポイントを示していunsubscribing (POST)を使用し、電子メールグループに再登録(DELETE)する必要があります。

私はDELETE要求を受け取ることができましたが、ドキュメントはPOST要求ではあまり明確ではありません。またはわかりません。

私はこの試みた:

var request = new RestRequest("v3/asm/groups/" + group.id + "/suppressions", Method.POST); 
request.AddParameter("recipient_emails", "['[email protected]']"); 

をしかし、私はBadRequest応答を得る:

無効なJSON:無効な文字 'R' 私は値

の始まりを探してまた、これらを試した:

var request = new RestRequest("v3/asm/groups/" + group.id + "/suppressions?{\"recipient_emails\":[\"[email protected]\"]}", Method.POST); 

var request = new RestRequest("v3/asm/groups/" + group.id + "/suppressions?recipient_emails=['[email protected]']", Method.POST); 

しかし、私は別のBadRequest応答を取得:

無効なJSON:JSON入力

の予想外の終わりを私はエラーメッセージを理解し、私は私がやっていることは正しいかどうかさえわかりません。成功の応答を得るために何をする必要がありますか?

また、私はSendGridによって提供されるC#ライブラリがあることを認識していますが、動作させることができませんでした。私はC#の開発者ではありませんが、私たちは後ろにいるので、仕事のためにこれを行う必要があります。私は単純化されたバージョンを理解できれば、後でライブラリを統合することができるはずです。

ありがとうございます。

答えて

2

ここでの問題は、あなたのリクエストにはが指定されており、application/jsonであるはずがないと思います。

strJsonContentはJSON文字列である
request.Method = Method.POST; 
request.AddHeader("Accept", "application/json"); 
request.Parameters.Clear(); 
request.AddParameter("application/json", strJsonContent, ParameterType.RequestBody); 

this answerごと、のようなものを試してみてください。この文字列を作成するには、JSON.NETのようなものを使用するとよいでしょう。

+1

ありがとうございます。私は '' Request.AddHeader( "Content-Type"、 "multipart/form-data");と '' request.AddHeader( "Accept"、 "application/json"); ' Authヘッダー)。しかし、私はそれを動作させることができるかどうか試してみるいくつかの異なるコードサンプルを提供しています。再度、感謝します。 – Quantastical

+2

はい!出来た!!私はあなたのAddParameterメソッドを使用し、簡単なテストとして自分のJSON文字列を手作りしました。ありがとうございました!私はJSONのためにこのNewtonSoftのものを使用するつもりですが、これを受け入れたものとしてマークします。 – Quantastical

+0

ええ、重要なビットは 'ParameterType'です。そうでなければ、それらのパラメータはクエリ文字列に終わります – bwest

関連する問題