2016-05-11 11 views
0

私は安心して働いています。json形式で話す外部旅行ポータルAPIです。 このapi urlにユーザー名とパスワードを投稿するアクションメソッドを作成したいと思います。 私はフィドラーでそれを行うことはできますが、Web APIのアクションメソッドで情報を送信する方法はわかりません。このurlはすべてのサブリクエストに使用されるトークンIDを返します。 私の質問:ウェブAPIで外部の休息URLを認証する方法

私はビューのページからformCollectionを介してユーザー名とパスワードを渡しています。私はこの要求ヘッダーに資格情報を持つjsonArrayを追加し、応答を戻す方法を知りたい。

 [HttpPost] 
    public IHttpActionResult About(FormCollection form) 
    { 
     string url = "http://someurl.com//api/PersonalDetails/GetPersonalDetails"; 
     using (HttpClient client = new HttpClient()) 
     { 
      client.BaseAddress = new Uri(url); 
      client.DefaultRequestHeaders.Accept.Clear(); 
      client.DefaultRequestHeaders.Accept.Add(new 
         Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); 
     } 

JSON配列は次のようなものです:

{ 
    "ClientId": "ApiIntegration", 
    "UserName": "xxxxxx", 
    "Password": "[email protected]", 
    "EndUserIp": "192.168.11.120" 
    } 

私はこのURLにパラメータを指定して、この配列を送りたいです。しかし、それを行う方法を知らない。 私は匿名メソッドを作成して、リクエストヘッダに値を渡そうとしていました。 はこのような何かしよう:シオマネキで

 var arr = new 
     { 
      ClientId = "ApiIntegration", 
      UserName = Convert.ToString(form["UserName"].ToString()), 
      Password = Convert.ToString(form["Password"].ToString()), 
      EndUserIp = "192.168.11.120" 
     }; 

を、それは非常に簡単でした。すべての資格情報をレスポンスボディに入れ、リクエストヘッダーにContent-Typeをapplication/jsonに設定し、すべてのデータを返す

私を助けてください。あなたは、単にこのエンドポイントにデータを投稿したい場合は

答えて

1

:あなたの助けを

string url = "http://someurl.com//api/PersonalDetails/GetPersonalDetails"; 
using (var client = new HttpClient()) 
{ 
    var payload = JsonConvert.SerializeObject(new 
    { 
     ClientId = "ApiIntegration", 
     UserName = Convert.ToString(form["UserName"].ToString()), 
     Password = Convert.ToString(form["Password"].ToString()), 
     EndUserIp = "192.168.11.120" 
    }); 

    var response = await client.PostAsync(url, new StringContent(payload, Encoding.UTF8, "application/json")); 

    var json = await response.Content.ReadAsStringAsync(); 

    // deserialize the json and get your token id 
} 
+0

Thnksは、私はそれを – duke

+0

1以上QUESをしようと、生成されたトークンIDは、後続のすべての要求のために使用されているかどうかように、Web APIのサポートセッションまたは私はトークンIDを格納するためにキャッシュを使用する必要がありますか? – duke

+0

それは別の質問の答えです:)私はおそらくそれを分散キャッシュに張っているでしょう。 – peco

関連する問題