2017-09-09 3 views
0

クエリパラメータとJSONを使ってPOSTリクエスト: -カール、私は次のプロパティの<strong>データ</strong>変数として有効なJSONを受け入れ、サーバー用のURL <a href="https://mylink/apply?data=" rel="nofollow noreferrer">https://mylink/apply?data=</a>を持って

  • 名前:あなたの名前の文字列(必須)
  • 電子メール:(必須)メールアドレス
  • URLを持つ文字列:任意のコメントと文字列/あなたが持つかもしれない要求(オプション)
  • :リンク
  • コメントと文字列の配列

私のJSONファイル「data.json」は、以下である:

{ 
    "data": 
    { 
     "name": "Rogers Bell", 
     "email": "[email protected]", 
     "urls":["https://stackoverflow.com/users/3067241/imran", "https://github.com/i4ali"], 
     "comment":"none" 
    } 
} 

私はPOSTリクエストを送信するには、次のcurlコマンドを使用すると、私はからのメッセージとエラーコード400不正なリクエストを取得しますサーバーエラー:データは渡されません。は、JSON形式またはコマンドに問題があることを示しています。私はここで間違ってやっているのかわからない

curl -v -i -X POST -d @data.json https://mylink/apply?data= -H "Accept: application/json" -H "Content-Type: application/json" -k 

それは私が、次の完全なURLと、このPOSTリクエストを送信することができたポストマンを使用して

+0

curl -G -X POST https://requestb.in/1n88lah1 --data-urlencode data="$(cat input.json)" 

input.jsonは次のようになります。 しかし、私はあなたに明確な答えを与えるためにAPIドキュメントが必要です。 –

+0

私の推測 - ヘッダーアプリケーション/ jsonを指定する必要があります – Konrads

+0

@Konrads私はすでに-H "Content-Type:application/json "CURLコマンドの – Imran

答えて

1

手に入れたAPIはかなり奇妙です。しかし、URLパラメータとしてJSONファイルとPOSTコンテンツをサーバに読み込まなければならない場合は、ファイルcatをエンコードしてcurlに送信してください。ここでは一例です:私はあなたがGETを使用して、クエリですべてのものを送ったり、POSTを使用し、ボディにクエリ全体を置くのいずれかをお勧め

{ 
    "name": "Rogers Bell", 
    "email": "[email protected]", 
    "urls":["https://stackoverflow.com/users/3067241/imran", "https://github.com/i4ali"], 
    "comment":"none" 
} 
-1

を重要ならば、私は、Windows 7を使用しています。 200 OK応答

https://mylink/apply?data={ 
    "name": "Rogers Bell", 
    "email": "[email protected]", 
    "urls":["https://stackoverflow.com/users/3067241/imran", "https://github.com/i4ali"], 
    "comment":"none" 
} 
+0

JSONデータをURLパラメータで送信していますか? APIはとても奇妙です... – shaochuancs

+0

はい、まさにです。私は、私が理解して以来、これがうまくいったのは驚いたことです。クエリ文字列を使ってJSONデータでPOST要求を行うことはできませんでした。 – Imran

+0

実際には、URLにパラメータを指定してPOSTリクエストを送信できます。しかし、通常、これはデータを送信する方法ではありません。 – shaochuancs

関連する問題

 関連する問題