我正在尝试从旧版 VB 代码中调用 WebAPI2 api。
该 API 在从提琴手或 AngularJS 客户端调用时有效。
[Route("CreateMyObject")]
[HttpPost]
public async Task<JsonResult<MyObject>> CreateMyObject([FromUri] int parentId, [FromBody] MyObject object)
然后在VB代码中:
Dim apiUri As New Uri(apiUrl & "api/CreateMyObject?parentId=" &
intParentId.ToString())
Dim data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(myObjectInstance))
Dim webRequest As WebRequest = WebRequest.Create(uri)
webRequest.ContentType = "application/json"
webRequest.Method = "POST"
webRequest.ContentLength = data.Length
Dim stream = webRequest.GetRequestStream()
stream.Write(data, 0, data.Length)
stream.Close()
Dim response = webRequest.GetResponse().GetResponseStream()
Dim reader As New StreamReader(response)
Dim res = reader.ReadToEnd()
reader.Close()
response.Close()
我只能从 API 获得 415 响应。我也尝试了其他内容类型,但结果相同或服务器错误。
此调用的任何问题似乎都与 Json 主体位有关,因为如果我不在调用主体中发送任何内容,则 parentId 会按预期到达 API。