【发布时间】:2017-05-09 08:11:05
【问题描述】:
我正在创建一个调用其他第三方 API 的 API。第三方 API 是一个 REST API,当我在 Web 浏览器中调用它时,它会返回 JSON 格式的响应
[{"Acc":"IT","Cnt":"023","Year":"16"}]
当我从我的 API 调用第三方 API 时,我试图获得相同的响应。
public IHttpActionResult Get(string acctID)
{
using (var client_EndPoint= new HttpClient())
{
Uri uri_EndPoint = new Uri(BaseURL_EndPoint);
client_EndPoint.BaseAddress = uri;
client_EndPoint.DefaultRequestHeaders.Accept.Clear();
client_EndPoint.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string EndPoint_URL = BaseURL_EndPoint+"api/NameCreation?Account="+acctID;
var response_EndPoint = client_EndPoint.GetAsync(EndPoint_URL).Result;
string responseString = response_EndPoint.Content.ReadAsStringAsync().Result;
return Ok(responseString);
}
}
我一直在做的是从字符串中获取第三方 API 的响应。但我正在检查是否有办法获得 JSON 格式,以便我可以直接返回它们。 get 方法的返回类型为IHttpActionResult。如果我以字符串形式返回,则响应看起来像
"[{\"Acc\":\"adm\",\"Cnt\":\"001\",\"Year\":\"16\"}]"
非常感谢任何帮助。
【问题讨论】:
-
显示如何返回数据的整个传递方法。发生的事情是json字符串在传递时再次被序列化
-
方法是
public IHttpActionResult Get(string LabName)我尝试使用return Ok(responseString);即使返回类似"[{\"Acc\":\"adm\",\"Cnt\":\"001\",\"Year\":\"16\"}]"的响应 -
看看这里给出的答案stackoverflow.com/a/40836422/5233410
-
没有其他简单的方法可以做到这一点吗?我得到了结果,但我将不得不采取额外的``
-
你也可以将其余的 api 结果反序列化为一个具体的类,然后将其传回,然后将其重新序列化为正确的 json
标签: c# asp.net json api asp.net-web-api