2017-04-26 10 views
0

それでは、それ自身で別のAPIを使用するREST APIを構築しました。今すぐ他のAPIを呼び出して、その呼び出しからオブジェクトを作成し、新しいリクエストを作成して送信することもできますが、それは少しのパフォーマンスを使い果たします。C#Contentですでにシリアル化された文字列をシリアル化しない方法

もう一度2回目のリクエストを送信しようとしましたが、問題はコンテンツがそれを再びシリアル化して、バックスラッシュがたくさんあることです。これは、これを行うに私のコードです:私が言ったように

[Route("")] 
    public IHttpActionResult GetAllDevices() 
    { 
     var request = new RestRequest(); 
     request = new RestRequest("devices", Method.GET); 
     IRestResponse response = client.Execute(request); 
     return Content(HttpStatusCode.OK, response.Content);//response.Content get's serialized again. 
    } 

、私は最初の呼び出しを非直列化して、コンテンツだけでそれを置くことができ、それが不要に感じています。ここで

+0

最初の要求が応答として文字列を返す場合、その後stringcontentでそれを固執し、ウルサービスからその文字列のテントを返す。 – loneshark99

+0

しかし、私のAPIは正しい文字列ではなく文字列を返します。 – MaxDax

+0

どういう意味ですか? – loneshark99

答えて

0

は、必要に応じて、アプリケーション/ JSONに明示的にコンテンツタイプを設定することを忘れないでください、それを行うための一つの方法です:

[HttpGet] 
    [Route("test")] 
    public HttpResponseMessage Test() 
    { 
     const string json = "{ \"test\": 123 }"; // from RestClient 
     var res = Request.CreateResponse(); 
     res.Content = new StringContent(json); 
     res.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json"); 
     return res; 
    } 
+0

これは機能しました!ありがとう – MaxDax

関連する問題