envoyer envoyer demande Https avec un Type de Contenu application Json en C#

J'essaie d'envoyer la requête suivante :

 POST /messaging/registrations/(REGISTRATION_ID_FOR_DESTINATION_APP_INSTANCE)/messages   HTTP/1.1
 Host: api.amazon.com
 Authorization: Bearer (MY_ACCESS_TOKEN)
 Content-Type: application/json
 X-Amzn-Type-Version: com.amazon.device.messaging.ADMMessage@1.0
 Accept: application/json
 X-Amzn-Accept-Type: com.amazon.device.messaging.ADMSendResult@1.0

 {
"data":{"message":"value1","title":"value2"},
"consolidationKey":"Some Key",
"expiresAfter":86400
 }

afin d'obtenir un format de réponse comme ceci:

 HTTP/1.1 200
 X-Amzn-Data-md5: t5psxALRTM7WN30Q8f20tw==
 X-Amzn-RequestId: e8bef3ce-242e-11e2-8484-47f4656fc00d
 Content-Type: application/json
 X-Amzn-Type-Version: com.amazon.device.messaging.ADMSendResult@1.0
 Content-Length: 308

 {"registrationID":(REGISTRATION_ID_FOR_DESTINATION_APP_INSTANCE)}

à faire que j'ai essayé avec ce code :

private void sendNotification(String registrationID,String message,
                                          String title,String accessToken)
{     
 //registrationID content (REGISTRATION_ID_FOR_DESTINATION_APP_INSTANCE) that can vary
 string url = "https://api.amazon.com/messaging/registrations/"+ registrationID +"/messages";

 var client = new HttpClient();

 //set Request headers 
 client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(
                                                      "Bearer", accessToken);
 client.DefaultRequestHeaders.Accept.Add(
             new MediaTypeWithQualityHeaderValue("application/json"));
 client.DefaultRequestHeaders.Add("X-Amzn-Type-Version",
                                "[email protected]");
 client.DefaultRequestHeaders.Add("X-Amzn-Accept-Type",
                            "[email protected]");

 //the content of the message body

 var content = new Dictionary<string, Object>();
 content.Add("consolidationKey", "SyncNow");
 content.Add("expiresAfter", 86400);
 var data = new Dictionary<string, string>();
 data.Add("message", message);
 data.Add("title", title);
 content.Add("data", data);


 var result = client.PostAsJsonAsync<Dictionary<string, Object>>(url, content).Result;
}

Comme réponse que je reçois StatusCode:400,ReasonPhrase: "Bad Request", je ne sais pas pourquoi ??

quelqu'un peut m'aider, s'il vous plaît !!

Pour le détail sur la suite qui j'ai eu:

  result    {StatusCode: 400, ReasonPhrase: 'Bad Request', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
x-amzn-RequestId: 1b943a1c-fe94-11e2-b963-71a537223b43
Vary: Accept-Encoding
Vary: User-Agent
Cneonction: close
Date: Tue, 06 Aug 2013 12:31:24 GMT
Content-Length: 34
Content-Type: application/json
}}    System.Net.Http.HttpResponseMessage
result.RequestMessage  {Method: POST, 
RequestUri: 'https://api.amazon.com/messaging/registrations/(REGISTRATION_ID_FOR_DESTINATION_APP_INSTANCE)/messages', 
Version: 1.1, 
Content: System.Net.Http.ObjectContent`1[[System.Collections.Generic.Dictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],
[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], 
Headers:
{
Authorization: Bearer (MY_ACCESS_TOKEN)
Accept: application/json
X-Amzn-Type-Version: com.amazon.device.messaging.ADMMessage@1.0
X-Amzn-Accept-Type: com.amazon.device.messaging.ADMSendResult@1.0
Content-Type: application/json; charset=utf-8
Content-Length: 98
}}       System.Net.Http.HttpRequestMessage

OriginalL'auteur mouhcine | 2013-08-06