Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 接收在浏览器中调用web api时,没有可读取的MediaTypeFormatter_Asp.net_Vb.net_Api_Web_Mediatypeformatter - Fatal编程技术网

Asp.net 接收在浏览器中调用web api时,没有可读取的MediaTypeFormatter

Asp.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

我有一个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内容、类型、IEnumerable
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()