Я был брошен в довольно старый проект, выполненный в классическом ASP. Для наших нужд мне нужно сделать простой curl
-request, чтобы обновить некоторые данные.PATCH/Post with curl in Classic ASP
Я довольно новичок в ASP, поэтому я искал похожие проблемы. Я наткнулся на этот вопрос здесь:
How can I post data using cURL in asp classic?
Я попытался адаптировать как можно больше, но мне кажется, что я не хватает важная вещь, и здесь мне нужна ваша помощь:
функции
ASP-public function makeCurlRequest(strMethod)
Dim http: Set http = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
Dim privateKey
privateKey = "abc def"
Dim url: url = "https://sandbox.uberall.com/api/locations/322427?private_key=" & privateKey
Dim data: data = "{""location"":{""openingHours"":[{""dayOfWeek"":1,""from1"":""07:01"",""to1"":""07:02""}]}}"
'method needs to be PATCH
With http
Call .Open(strMethod, url, False)
Call .SetRequestHeader("Content-Type", "application/json")
Call .Send(data)
End With
If Left(http.Status, 1) = 2 Then
response.write("updated")
response.end()
Else
'Output error
Call Response.Write("Server returned: " & http.Status & " " & http.StatusText)
End If
end function
В моем архиве, я просто позвонить makeCurlRequest("PATCH")
. Теперь он действительно печатает «обновленный», поэтому я предполагаю, что получаю 200
, но поля не обновляются.
Относительно к Убераллу API, они требуют location
-объекта, который должен быть в этом, что в настоящее время в моем data
-переменных. (Проверено через JSON-валидатор).
Для лучшей читаемости, я предоставить отступом код, а также, возможно, здесь ошибка:
{
"location":{
"openingHours":[
{
"dayOfWeek":1,
"from1":"07:01",
"to1":"07:02"
}
]
}
}
Идентификационные являются правильными, я дважды проверил, что уже. Может быть, полезная нагрузка неверна? Что может быть проблемой? Может быть, data
нужно вместо этого использовать иначе?
Если полезная нагрузка неверна, я бы ожидал ответа статуса в диапазоне 4XX, API должен вернуться к успеху, если полезная нагрузка была неправильной. Лучший способ отладки API-интерфейсов - использовать Fiddler для просмотра того, что отправляется и получает RAW-запрос и ответ. – Lankymart
Этот предыдущий комментарий должен был прочитать - API ** не должен ** возвращать успех, если полезная нагрузка была неправильной. – Lankymart