Asp.net 接收在浏览器中调用web api时,没有可读取的MediaTypeFormatter
我有一个Angular 7应用程序,带有用VB编写的ASP.net web api后端。我可以毫无问题地发布、放置和获取数据,但当我尝试通过路由或id访问数据时,我会收到以下错误: 请求包含实体正文,但不包含内容类型标头。此资源不支持推断的媒体类型“application/octet stream”。没有MediaTypeFormatter可用于从媒体类型为“application/octet stream”的内容中读取类型为“ProjectSummary”的对象。System.Net.Http.UnsupportedMediaTypeException位于System.Net.Http.HttpContentExtensions.ReadAsAsync[T](位于System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync的HttpContent内容、类型、IEnumerableAsp.net 接收在浏览器中调用web api时,没有可读取的MediaTypeFormatter,asp.net,vb.net,api,web,mediatypeformatter,Asp.net,Vb.net,Api,Web,Mediatypeformatter,我有一个Angular 7应用程序,带有用VB编写的ASP.net web api后端。我可以毫无问题地发布、放置和获取数据,但当我尝试通过路由或id访问数据时,我会收到以下错误: 请求包含实体正文,但不包含内容类型标头。此资源不支持推断的媒体类型“application/octet stream”。没有MediaTypeFormatter可用于从媒体类型为“application/octet stream”的内容中读取类型为“ProjectSummary”的对象。System.Net.Http
1格式化程序、IFormatterLogger格式化程序记录器、CancellationToken CancellationToken)(HttpRequestMessage请求,类型类型,IEnumerable
1格式化程序,IFormatterLogger格式化程序记录器,CancellationToken CancellationToken)
我正在尝试调用一个SQL函数,其中:id是从api传递的变量。在SQL Developer中,它可以正常工作,但在被api访问时却不行。下面是我函数的一部分:
Public Function GetValue(ByVal id As Integer, <FromBody()> ByVal psum As ProjectSummary)
Dim reslist As New List(Of Models.ProjectSummary)
'Dim res As String = String.Empty
Dim con As New OracleConnection(ConfigurationManager.ConnectionStrings("BOTDB").ConnectionString)
Dim cmd As New OracleCommand(CommandType.Text, con)
cmd.CommandText = "select PROJECT_ID, PROJECT_NAME, ROADBLOCKS
from TPMT_PROJECT WHERE PROJECT_ID = :id"
任何帮助都将不胜感激,因为我在这一问题上花费了大量时间。我已经解决了这个问题。我有点尴尬,但问题是在我的getValue函数声明中,哈哈 我有
公共函数GetValue(ByVal id作为整数,ByVal psum作为项目摘要)
但应该是这样
Public Function GetValue(ByVal id As Integer) As ProjectSummary()
简单的疏忽。这个问题取决于您如何格式化JSON、调用Web API方法和正在使用的HTTP方法(GET/POST)。如果您正在发送json数据,请尝试将
内容类型设置为application/json;charset=UTF-8
。嗨,Tetsuya。如何设置内容类型?我对POST和PUT没有任何问题,因为我的Angular应用程序正确处理它们。只有在我向GET函数添加额外参数或路由时,我才会这样做。
Public Function GetValue(ByVal id As Integer) As ProjectSummary()