独自のドキュメントで提供されている例を使用して、CloudFlare API v4を呼び出そうとしています。
これは例のコードです
curl -X PUT "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records/372e67954025e0ba6aaa6d586b9e0b59" \ -H "X-Auth-Email: [email protected]" \ -H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" \ -H "Content-Type: application/json" \ --data '{"id":"372e67954025e0ba6aaa6d586b9e0b59","type":"A","name":"example.com","content":"1.2.3.4","proxiable":true,"proxied":false,"ttl":120,"locked":false,"zone_id":"023e105f4ecef8ad9ca31a8372d0c353","zone_name":"example.com","created_on":"2014-01-01T05:20:00.12345Z","modified_on":"2014-01-01T05:20:00.12345Z","data":{}}'
pdate DNS Records にもあります
Windowsのcmd.exeを使用してこのコマンドを実行するには、最初に1行にする必要があるため、「\」を削除して再フォーマットし(2回)、プロセスのどの部分も変更しないようにします。
これは、1行の同じコードです。
curl -X PUT "https://api.cloudflare.com/client/v4/zones/023e105f4ecef8ad9ca31a8372d0c353/dns_records/372e67954025e0ba6aaa6d586b9e0b59" -H "X-Auth-Email: [email protected]" -H "X-Auth-Key: c2547eb745079dac9320b638f5e225cf483cc5cfdda41" -H "Content-Type: application/json" --data '{"id":"372e67954025e0ba6aaa6d586b9e0b59","type":"A","name":"example.com","content":"1.2.3.4","proxiable":true,"proxied":false,"ttl":120,"locked":false,"zone_id":"023e105f4ecef8ad9ca31a8372d0c353","zone_name":"example.com","created_on":"2014-01-01T05:20:00.12345Z","modified_on":"2014-01-01T05:20:00.12345Z","data":{}}'
このシングルライナーをcmdで実行すると機能しますが、リクエスト本文に不正な形式のJSONが表示されますが、視覚的なチェック、notepad ++でのフォーマット、JSONバリデーターの実行はすべて正です。このJSON(CloudFlareドキュメントからコピー) )は不正な形式ではありません。
エラーメッセージ
{"success":false,"errors":[{"code":6007,"message":"Malformed JSON in request body"}],"messages":[],"result":null}
このエラーメッセージまたはエラーコードをグーグルしても何も得られず、この同じコマンドが上司のLinuxを実行しているPCで機能します。
これが既知のバグなのか、JSONが実際に不正な形式なのか、何か他のことが思い浮かぶのか、誰か教えてもらえますか?
ありがとうございました
フランク・ローウェル、質問ありがとうございます!
私はブログの投稿で答えを見つけました: "有効なJSONがリクエスト本文で見つかります..." curl for Windows 。
たとえば、 Purge everything--data
値は次のとおりです。
# On Linux
--data '{"purge_everything":true}'
# On Windows
--data "{\"purge_everything\":true}"
Windowsの場合:
'
-->
"
"
-->
\"