私は古典的なASPで作られたかなり古いプロジェクトに投げ込まれました。私たちのニーズに合わせて、いくつかのデータを更新するには、単純なcurl
-requestを作成する必要があります。PATCH /古典的なASPでカールする投稿
私はASPには新しく、同様の問題を探しました。
機能:私はあなたの助けを必要とし、ここで
How can I post data using cURL in asp classic?
私はできるだけ多くを適応させることを試みたが、私は重要なことが欠けてるように思えると:私はここで、この 質問につまずきました私のファイルで
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
を.aspファイル、私は単にmakeCurlRequest("PATCH")
を呼び出します。 これは確かに "更新された"と表示されるので、私は200
を取得していると推測しますが、フィールドは更新されません。
uberall APIに関しては、location
-objectが必要です。これは、現在のところ、現在data
-variableになっています。 (JSON検証ツールでチェック)。
は、読みやすくするため、私もインデントのコードを提供します、多分ここでエラーです:
{
"location":{
"openingHours":[
{
"dayOfWeek":1,
"from1":"07:01",
"to1":"07:02"
}
]
}
}
IDが正しい、私はすでにそれをダブルチェック。多分、ペイロードは間違っていますか?何が問題なのでしょうか?このアプローチの代わりにdata
を用意する必要がありますか?
ペイロードが間違っていると、ペイロードが間違っていた場合、APIは4XXの範囲内でステータス応答を返すことが期待されます。 APIをデバッグする最善の方法は、Fiddlerを使用して、RAW要求と応答が送受信されていることを確認することです。 – Lankymart
これまでのコメントは読んでいたはずです - **ペイロードが間違っていれば**は成功しません。 – Lankymart