投稿リクエストをREST APIに送信しようとしています。 curlで-dオプションを指定してパラメータを渡すと、すべてうまく動作することに気付きました。例:curl:-dと--data-binaryオプションの違いは何ですか?
curl "https://mywebsite.com" -d "param1=x" -d "param2=y" -u "3SUHZb0sanKWrQ"
しかし、(何のパラメータが受信されなかったかのように)、JSONオブジェクトと--data-バイナリ使用などの送信パラメータは、私は、APIからエラーを受信した場合。例:
curl "https://mywebsite.com" --data-binary $'{ "param1": "x", -d "param2":"y" }' -u "3SUHZb0sanKWrQ"
私は2つのアプローチが同じ振る舞いをしていると思ったが、私は間違っていると思った。これら2つのアプローチの違いは何ですか?
P .: 2番目のリクエストは、実際のリクエストが、jsonオブジェクトとしてデータペイロードを持つangularJSの$ http.postであるため、Google Chromeで「curl as curl」オプションを選択したときに取得するカールリクエストです。 angularJSで何ができるのですか?
var data = {
"param1": "x",
"param2": "y"
};
$http({
url: "https://mywebsite.com",
method: 'POST',
data: data
}).then(function successCallback(response){
console.log(response);
}, function errorCallback(response){
console.log(response);
});
ありがとうございます!
-dは--dataの略です。 --data-binaryは別のオプションです。 – MarkSkayff
'man curl'から:--data-binary(HTTP)これは、特別な処理をしないで指定されたとおりにデータを投稿します。 @を使用してデータを開始する場合、残りはファイル名でなければなりません。 *改行と改行が保存され、変換が行われないことを除いて--data-asciiと同様の方法でデータがポストされます* このオプションを何度か使用すると、最初のものに続くものはデータを追加します-d、--dataで説明されているように。 – drew010