c# - 远程服务器返回错误:(415) Unsupported Media Type using API in asp.net
问题描述
我想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"}]}
我不明白错误的根本原因是什么。请帮忙
解决方案
经过我从客户端获得的大量调试和响应数据。
试一试。我所做的是
I created the Parameters with same name as the response was generating from the API
例如:- 之前的响应类名称是IEIncrementalData
我发送的。但 API 响应是SiteData
,它有 11 个参数。所以我创建了具有相同名称和相同参数的类。
这样做之后它对我有用。!
推荐阅读
- python - 调用存储在不同 .py 文件中的多个函数(名称以数字开头)
- ios - 更新后的错误:...异常'NSGenericException',原因:'此编码器要求从initWithCoder返回替换的对象:'
- vue.js - 将 vue-auth-image 插件集成到 Nuxt.js
- php - 从输入文件中使用 Codeigniter 中的 PHPExcel Api 读取 xlsx 文件时,如何修复错误(无法打开读取!文件不存在)?
- angular - Angular - 无法使用 .subsribe 将 json 数据存储在变量中
- sql - 仅当先前记录具有特定值时才显示记录
- javascript - Javascript 从 Math.random 中提取最后一个数字
- log4j2 - 如何控制 Karaf 的 log4j 2 PAX 缩减/截断多少行?
- c++ - 如何模拟一个采用已经定义的 lambda 函数并覆盖 lambda 函数的函数
- python - 30秒后实时解析日志文件