2017-03-28 14 views
0

与えられた要件を満たしながら、cURLでPOSTリクエストをAPIに送信しようとしています。コマンドラインからファイルとデータをcURLにアップロードするPOST要求を行う方法

ガイドライン:

  • 提出のコンテンツタイプアプリケーション/ JSON

  • なければならない次の体の構造である:

    • 名:文字列

    • のPhoneNumber:文字列

    • メール:文字列

    • ポジション:文字列

    • のURL:文字列

    • リンク:次のプロパティ

      • タイプを含むオブジェクトの配列:String

  • すべてのフィールドは、履歴書のために

  • を必要とされる "再開" タイプで

  • 少なくとも1つのURLを必要としている、我々はPDF形式であるために提出を必要と

  • 送信が成功した場合は、HTTP 202応答を受信します。

JSONで送信したいすべてのデータに対して適切な構文があると思いますが、同じリクエストでPDFをアップロードする方法がわかりません。

ここまでは私の構文です。

curl -i -H "Accept: application/json" -H "Content-Type: application/json" - 
    X POST -d '{"json":{"Name":"data"}}' -d '{"json": 
    {"PhoneNumber":"data"}}' -d '{"json":{"Email":"data"}}' -d '{"json": 
    {"Position":"data"}}' https://example 

私は、コマンドラインにこれ​​を入力すると、もちろん、私は202の応答を撮影していたとき、私は "HTTP 400不正な要求の応答を取得します。

私は主にPythonとRでプログラムしています。だから、cURLを使うことは私には新しくあります。私はこのアプリケーションを送ることができるように助けてくれて大変感謝しています。これ以上情報が必要な場合はお知らせください。いくつかの-dを渡す

答えて

0

、すなわち-d data1 -d data2がHTTP要求本体にdata1&data2を通過中に生じるであろう、&で区切られたパラメータリストとして渡されたデータ片を作ります。

あなたが一度にあなたの全体のJSON文字列を渡す必要があります。

curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST 
    -d '{"Name":"data", "PhoneNumber":"data", "Email":"data", "Position":"data"}' 
    https://example 

N.B. "Content-Type: application/jsonの後に閉じることを了承してください。"

+0

ご回答ありがとうございます。私はまだ依頼をうまく送れませんが、私は近くにいます。問題は私のURLで 'オブジェクトの配列'である必要があります。あなたはこれを行う方法を知っていますか?これを解決しようとする別の質問を作成すべきですか? – Dre

+0

@Dre:ようこそ!私は、URLが「オブジェクトの配列」であるということをあなたがどういう意味か分かりません。これを明確にして例を挙げてください。 –

+0

私はJSON文字列がきれいだと言われましたが、これは良いことですが、問題は上記のガイドラインの配列要件です。私はあまりにも "オブジェクトの配列"が何を意味するか分かりませんが、ここで私が試したものです。 'curl -g -i -H'を受け入れる:application/json "-H"コンテンツタイプ:application/json "-X POST -d '{" Name ":" data "、" PhoneNumber ":" data "、"メール ":" [email protected] "、"位置 ":"データ "、" URL ":[{" Github ":" github.com/data"},{"Resume":"linkedin.com/in/ data "}]} 'https:// envoc-apply-api.azurewebsites.net/api/application'でも無効なリクエストボディレスポンスが返ってきます。私はこれが役立つことを願っています – Dre

0

これを試してみてください!

 try{ 

      var httpclient = new HttpClient(); 
      Urls[] url = new Urls[] 
      { 
       new Urls("Resume", "https://my.pcloud.com/publink/show?code=XZV0YvZyqR708s0VNkTCMigM8AvdyEhE59y") 

       }; 
      var envocdata = new envoc_data 
      { 
       Name = "Prasanna", 
       PhoneNumber = "data", 
       Email = "[email protected]", 
       Position = "Xamarin Developer", 
       Urls = url 

      }; 
      var json = JsonConvert.SerializeObject(envocdata); 
      HttpContent httpcontent = new StringContent(json); 
      httpcontent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"); 
      var result = await httpclient.PostAsync("http://envoc-apply-api.azurewebsites.net/api/apply", httpcontent); 

     } 
     catch (Exception ex) 
     { 
      DisplayAlert("", ""+ex.Message, "Ok"); 
     } 
関連する問題