Как избежать исключения ошибки. (500) для извлечения данных ответа из размещенной веб-службы в ASP.NET-что?
Я получаю исключение из удаленного сервера, возвращающего ошибку. (500) Внутренняя ошибка сервера при попытке извлечь данные ответа из размещенной веб-службы в asp.net с помощью c#. Размещенный веб - сервис также доступен.
API запроса находится в формате json, как показано ниже:
<string xmlns="http://tempuri.org/"> {"Req_UserId":"Samuel.Jacob","Req_Channel_ID":"IB","Req_Reference_No":"IB120219100103"} </string>
Содержание API ответа выглядит следующим образом:
{ "AuthenticateSSOResponse": { "Reference_No": "IB120219100103", “Token_No": "120219100103256" } }
Что я уже пробовал:
Код как показано ниже:
public string CallWebService() { string URL = ConfigurationManager.AppSettings["NeST_WSI_API"] != null ? ConfigurationManager.AppSettings["NeST_WSI_API"].ToString() : string.Empty; JavaScriptSerializer oSerializer = new JavaScriptSerializer(); string ReqJSON = BuildReqJson(); System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.Method = "POST"; request.Accept = @"application/json"; request.ContentType = @"application/json"; Byte[] byteArray = encoding.GetBytes(ReqJSON); request.ContentLength = byteArray.Length; using (Stream stm = request.GetRequestStream()) { stm.Write(byteArray, 0, byteArray.Length); } using (StreamReader responseReader = new StreamReader(request.GetResponse().GetResponseStream())) { //string jsonResponse = responseReader.ReadToEnd(); string jsonResponse = "jsonResponse"; if (jsonResponse != null) { } } return ""; } #endregion
F-ES Sitecore
Прежде всего ... соответствует ли то, что вы посылаете, тому, что требуется? Для начала ваш код создает только json (этот json сам по себе может быть недействительным, вы не публиковали код для него), а не xml, который должен быть обернут вокруг него. Используйте что-нибудь вроде fiddler или wireshark, чтобы изучить запрос, который вы на самом деле делаете, чтобы увидеть, что находится в теле.