Служба Rest выдает внутреннюю ошибку 500 с кодом C#
я получаю ошибку при доступе к сервису rest с кодом C#, но он работает по запросу почтальона
вот код, который я написал
он выдает ошибку при выполнении этого кода
HttpWebResponse response =(HttpWebResponse) request.GetResponse();
Что я уже пробовал:
try { HttpWebRequest request =(HttpWebRequest) WebRequest.Create("https://smsmate.lk/api/sms/v2/send"); request.Method = "POST"; request.PreAuthenticate = true; request.Headers["Authorization"] = "ApiKey" + "XXXXXX-150a-4fae-9f43-ce6e49b92d4e"; Mysms mymsg = new Mysms(); mymsg.Message = "Test"; mymsg.Addresses = "94719254547"; // JsonConvert.DeserializeObject(mymsg); var postdata = "{" + "Message:" + mymsg.Message + "," + "Addresses:[" + mymsg.Addresses + "]}"; byte[] byteArray = Encoding.UTF8.GetBytes(postdata); var data = Encoding.ASCII.GetBytes(postdata); //if (ContainsUnicodeCharacter(postdata)) //{ // data = Encoding.UTF8.GetBytes(postdata); //} request.ContentType = "application/json"; request.ContentLength = postdata.Length; Stream req = request.GetRequestStream(); req.Write(byteArray, 0, byteArray.Length); req.Close(); HttpWebResponse response =(HttpWebResponse) request.GetResponse(); req = response.GetResponseStream(); } catch (Exception ex) { throw ex; }
Richard Deeming
catch (Exception ex) { throw ex; }
Не делайте этого; это уничтожает трассировку стека исключения. Если вам действительно нужно повторно создать исключение, просто используйте
throw;
:catch (Exception ex) { throw; }
Но в этом случае, поскольку вы ничего не делаете с исключением, нет никакого смысла ловить его. Просто уберите его
try..catch
заблокируйте и позвольте исключению распространиться на вызывающего абонента.
Richard Deeming
Если сервер возвращает код ошибки, request.GetResponse()
будет бросать а WebException
.
Поймать это исключение и рассмотреть ее Status
и Response
свойства, чтобы увидеть, какую ошибку вернул сервер.