Удаленный сервер возвратил ошибку: (415) Неподдерживаемый тип носителя с использованием API в asp.net - PullRequest
0 голосов
/ 25 октября 2018

Я хочу использовать API в своем приложении.Поэтому я использую его, как показано ниже

IEIncrementalData objIncrement = new IEIncrementalData();
IEIncrementalData[] arrIncrementData = new IEIncrementalData[1];

objIncrement.SAPID = Convert.ToString(grdDisplayFCAData.Rows[gvrow.RowIndex].Cells[0].Text).Replace(" ","");
objIncrement.SiteRFEIDate = Convert.ToString(grdDisplayFCAData.Rows[gvrow.RowIndex].Cells[8].Text).Replace(" ", "");
objIncrement.SiteRFSDate = Convert.ToString(grdDisplayFCAData.Rows[gvrow.RowIndex].Cells[9].Text).Replace(" ", "");
objIncrement.ID_OD = Convert.ToString(grdDisplayFCAData.Rows[gvrow.RowIndex].Cells[1].Text).Replace(" ", "");
objIncrement.ID_OD_CHANGEDATE = Convert.ToString(grdDisplayFCAData.Rows[gvrow.RowIndex].Cells[2].Text).Replace(" ", "");

if (string.IsNullOrEmpty(Convert.ToString(grdDisplayFCAData.Rows[gvrow.RowIndex].Cells[4].Text).Replace(" ", "")))
{
    objIncrement.NoofRRHBase = "0";
}
else 
{
    objIncrement.NoofRRHBase = Convert.ToString(grdDisplayFCAData.Rows[gvrow.RowIndex].Cells[4].Text).Replace(" ", "");
}

objIncrement.SiteStatus = "".Replace(" ", "");
objIncrement.SiteDropDate = "".Replace(" ", "");
objIncrement.RRH_CHAGEDDATE = Convert.ToString(grdDisplayFCAData.Rows[gvrow.RowIndex].Cells[5].Text).Replace(" ", "");
objIncrement.TENANCY_COUNT = Convert.ToString(grdDisplayFCAData.Rows[gvrow.RowIndex].Cells[6].Text).Replace(" ", "");
objIncrement.TENANCY_CHANGEDDATE = Convert.ToString(grdDisplayFCAData.Rows[gvrow.RowIndex].Cells[7].Text).Replace(" ", "");

arrIncrementData[0] = objIncrement;

string apiUrl = ConfigurationManager.AppSettings["WebApiUrl"].ToString();
var inputIPColoMaster = new
{
    IEIncrementalData = arrIncrementData,
};
string inputJsonIPColoMaster = (new JavaScriptSerializer()).Serialize(inputIPColoMaster);
WebClient client = new WebClient();
client.Headers["Content-type"] = "application/json";
client.Encoding = Encoding.UTF8;
string json = client.UploadString(apiUrl, inputJsonIPColoMaster);
DataTable dtRes = new DataTable();
string GISSendDate = System.DateTime.Now.Date.ToString("dd-MM-yyyy", new System.Globalization.CultureInfo("en-US"));
StringReader sr = new StringReader(json);
dtRes = JsonConvert.DeserializeObject<DataTable>(json);

Но при использовании упомянутого API я получаю сообщение об ошибке:

Удаленный сервер возвратил ошибку: (415) Неподдерживаемый тип носителя.

вышеупомянутая ошибка, сгенерированная, когда я отлаживаю эту строку кода,

string json = client.UploadString(apiUrl, inputJsonIPColoMaster);

Сгенерированный json ниже: -

{"IEIncrementalData":[{"SAPID":"I-PB-AMRR-ENB-I042","SiteRFEIDate":"23/10/2018","SiteRFSDate":"Approved","ID_OD":"","ID_OD_CHANGEDATE":"","NoofRRHBase":"24/10/2018","SiteStatus":"","SiteDropDate":"","RRH_COUNT":null,"RRH_CHAGEDDATE":"","TENANCY_COUNT":"","TENANCY_CHANGEDDATE":"23/10/2018"}]}

Я не понимаю, в чем именно причина ошибки.Пожалуйста, помогите

1 Ответ

0 голосов
/ 26 октября 2018

После стольких данных отладки и ответов, которые я получил от клиента.

Я попробовал.То, что я сделал, это

I created the Parameters with same name as the response was generating from the API

Например: - Ранее имя класса ответа было IEIncrementalData, которое я отправлял.Но ответ API был SiteData и имеет 11 параметров.Поэтому я создал класс с тем же именем и тем же параметром.

После этого он работал для меня. !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...