2016-03-10 4 views
1

Следующий код выдает сообщение об ошибке request.GetResponse(). Он возвращает ошибку 400 с плохим запросом. Я пробовал разные вещи, но до сих пор без каких-либо успехов. Есть ли что-нибудь, что я могу сделать, чтобы получить более подробную информацию об ошибке 400?JSON C# WebRequest возвращает ошибку 400 плохой запрос

string sURL = "https://testservice.mywebsite.be/games/1/players"; 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sURL); 
     request.Method = "POST"; 
     request.Accept = "application/json"; 
     request.ContentType = "application/json"; 

     String sTimestamp = DateTime.Now.ToUniversalTime().ToString("yyyyMMddHHmmss"); 
     string sHMACmessage = string.Format("verb={0}&timestamp={1}&url={2}&playernumber={3}", request.Method.ToString().ToUpperInvariant(), sTimestamp, sURL, sPlayerNumber); 
     byte[] bHash = HashHMAC(StringEncode("myprivatekey"), StringEncode(sHMACmessage)); 
     string sHash = HashEncode(bHash); 

     request.Headers.Add("Timestamp", sTimestamp); 
     request.Headers.Add("PlayerNumber", sPlayerNumber); 
     request.Headers.Add("Authentication", String.Concat("mypublickey", ":", sHash)); 

     using (var streamWriter = new StreamWriter(request.GetRequestStream())) 
     { 
      string json = "{\"playingYear\":\"2015\"}"; 
      streamWriter.Write(json); 
     } 
     long length = 0; 
     try 
     { 
      using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
      { 
       length = response.ContentLength; 
      } 
     } 
     catch (WebException ex) 
     { 
      throw; 
     } 
+0

Правильный ли URL? он возвращает 400 не найден ... – Gusman

+0

Да, он отлично работает для других внутренних подключений – neuzehie

+0

Кроме того, вы не используете sHMACmessage вообще, эти параметры должны быть отправлены на сервер? – Gusman

ответ

0

В TestService, убедитесь, что вы включите следующее прочь, чтобы видеть подробную ошибку:

<?xml version="1.0"?> 
<configuration> 
<system.web> 
    <customErrors mode="Off"/> 
</system.web> 
</configuration> 

попробовать Также с помощью инструмента, как Fiddler, чтобы увидеть, если он работает оттуда, прежде чем пытаться с кодом.

Смежные вопросы