我有一个Angular 7应用程序,其ASP.net Web API后端以VB编码。我可以毫无问题地发布,放置和获取数据,但是当我尝试通过路线或ID访问数据时,这是我收到的错误:
该请求包含一个实体主体,但没有Content-Type头。此资源不支持推断的媒体类型'application / octet-stream'。没有MediaTypeFormatter可从媒体类型为'application / octet-stream'.System.Net.Http的内容中读取类型为'ProjectSummary'的对象。 System.Net.Http.HttpContentExtensions.ReadAsAsync [T]上的UnsupportedMediaTypeException(HttpContent内容,类型,IEnumerable
1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken) at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable
1格式器,IFormatterLogger formatterLogger,CancellationToken cancelledToken)
我想做的是调用一个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"
如果我想获取项目ID 1的数据,我是否应该不能通过访问URL ... / api / ProjectData / 1来访问此数据?
这是我的WebApiConfig.vb的摘录:
' Web API routes
config.MapHttpAttributeRoutes()
config.Routes.MapHttpRoute(
name:="DefaultApi",
routeTemplate:="api/{controller}/{id}",
defaults:=New With {.id = RouteParameter.Optional}
)
任何帮助都将不胜感激,因为我在这一问题上花费了大量时间。
答案 0 :(得分:0)
我已经解决了这个问题。我有点不好意思,但是问题出在我的getValue函数的声明中哈哈。
我有
Public Function GetValue(ByVal id As Integer, <FromBody()> ByVal psum As ProjectSummary)
但应该是
Public Function GetValue(ByVal id As Integer) As ProjectSummary()
简单的监督。