我正在尝试使用 REST API 在 magento 2.1 网站上更新库存商品数量。
我正在 VB.net 中编码,但收到错误 JSON 响应 {"message": "Request does not match any route."}
Dim Access_Token = "XXXXXXXXXXXXX"
Try
Dim VATWebClient = New WebClient()
VATWebClient.Headers(HttpRequestHeader.Accept) = "application/json"
VATWebClient.Headers(HttpRequestHeader.ContentType) = "application/json"
VATWebClient.Headers(HttpRequestHeader.Authorization) = "Authorization Bearer " & Access_Token
Dim Response As String
Response = VATWebClient.UploadString("http://www.xxxxxx.com/rest/V1/products/xxxx/stockItems/1", "{""stockItem"":{""qty"":100}}")
Catch webEx As WebException
Dim errorMessage As String = webEx.Message
Dim errorStack As String = webEx.StackTrace
End Try
我还尝试设置 SoapUI 只是为了测试以确保我调用它是正确的,但我得到了相同的错误。
我在某处读到,
webapi.xml
必须使用所需的API进行更新,我真的希望情况并非如此,因为主机/网络开发人员不太容易访问!
UploadString 将创建一个 POST 请求,正如您从 API 文档中看到的,此 API 端点仅是 PUT 方法。
https://devdocs.magento.com/swagger/index_21.html#!/catalogInventoryStockRegistryV1/catalogInventoryStockRegistryV1UpdateStockItemBySkuPut
我不太清楚如何更改 Visual Basic 中的方法,但我确信这不是太难。