2016-06-27 24 views
0

私はバイト[]を返すWeb APIのPOSTメソッドを持っています。POSTリクエストの内容を取得する方法は?

[HttpPost] 
[ActionName("adduser")] 
public byte[] AddUser([NakedBody] byte[] data) { ... } 

私はこのメソッドにmvcアプリケーションからreuestを作成します。

[HttpPost] 
public ActionResult AddUser(RegistrationData data) 
{ 
    byte[] requestPcmsMessage = CryptographyHelper.GetPcmsMessageFromModel(data); 
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost:10189/portal/adduser"); 
    request.Method = "POST"; 
    request.KeepAlive = true; 
    request.ContentLength = requestPcmsMessage.Length; 
    using (var requestStream = request.GetRequestStream()) 
    { 
     requestStream.Write(requestPcmsMessage, 0, requestPcmsMessage.Length); 
    } 
    HttpStatusCode statusCode; 
    string responseString = ""; 
    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
    { 
     statusCode = response.StatusCode; 

     if (statusCode == HttpStatusCode.OK) 
     { 
      responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 
     } 
    } 

    var responsePcmsMessage = CryptographyHelper.cryptoObject.ToBytes(responseString); 

    ...  

    return View(); 
} 

しかし、私がresponsePcmsMessageに入力した応答は、サーバーから送信したバイトではありません。では、どうすれば入手できますか?

+0

を動作するかどうか、私は知らないあなたが期待しているバイトがこの行にある場合、あなたは確認することができますか? responseString =新しいStreamReader(response.GetResponseStream())。ReadToEnd(); –

答えて

0

これは役に立ちますが、このウェブサイトのほとんどすべてのサンプルコードがあります。彼らはすべて、最後にレスポンスを返すことと関連したコードを添付しています。だから、あなたも同様の方法でそれを実装しようとすることができますか?

Email Verification APIのサンプルコードの一部を確認してください。私は本当に少しでもあなたを助けることを願っています。

+0

ようこそStackOverflowへとあなたの答えをありがとう。あなたのウェブサイトから有用なコードサンプルを追加することができれば幸いです。それが問題に直接的にリンクされているのではなく、単なるリソースであれば、評判が50になるときには[コメントとしてより良い](http://stackoverflow.com/help/privileges/comment);) – goto

0
public ActionResult AddUser([FromBody] RegistrationData data) 
0

これは私がRestClientを使用して、それを使用する方法であることがあなたのために

// URL 
string URL = "http://localhost:10189/portal/"; 
// client URL     
var client = new RestClient(URL); 
// what you want to do 
var request = new RestRequest("adduser", Method.POST); 
//Login-Data - if necessary 
client.Authenticator = new HttpBasicAuthenticator("user", "password"); 
// the response you are looking for 
IRestResponse response = client.Execute(request); 
// return it to you 
return response.Content; 
関連する問題