我被扔進了一個非常古老的項目,這是用傳統的ASP製作的。爲了我們的需要,我需要做一個簡單的curl
-請求,來更新一些數據。修補程序/貼在經典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
,但是這些字段沒有更新。
關於到uberall API,他們需要一個location
-object,這應該是這個,什麼是目前在我data
-variable。 (通過JSON驗證器檢查它)。
爲了更好的可讀性,我將提供縮進代碼爲好,也許這裏是一個錯誤:
{
"location":{
"openingHours":[
{
"dayOfWeek":1,
"from1":"07:01",
"to1":"07:02"
}
]
}
}
的ID是正確的,我反覆檢查了。也許有效載荷是錯誤的?可能是什麼問題?也許需要提供data
而不是這種方法?
如果有效負載是錯誤的,我期望在4XX範圍內的狀態響應,如果有效負載錯誤,API應該返回成功。調試API的最佳方式是使用Fiddler來查看正在發送和接收的RAW請求和響應。 – Lankymart
以前的評論應該已經閱讀 - 如果有效載荷錯誤,API **不應該**返回成功。 – Lankymart