从razor模板调用外部API
我试图在我的2sxc razor模板中使用MS Dynamics API JSON响应作为数据源。出于安全原因,我希望将查询生成为服务器端post请求。我的代码必须存在于razor模板中,因为我没有FTP权限上载自定义代码或库 我一直尝试在自定义应用程序中使用的标准异步请求从razor模板调用外部API,razor,2sxc,Razor,2sxc,我试图在我的2sxc razor模板中使用MS Dynamics API JSON响应作为数据源。出于安全原因,我希望将查询生成为服务器端post请求。我的代码必须存在于razor模板中,因为我没有FTP权限上载自定义代码或库 我一直尝试在自定义应用程序中使用的标准异步请求 private static readonly HttpClient client = new HttpClient(); protected void Page_Load(object sender
private static readonly HttpClient client = new HttpClient();
protected void Page_Load(object sender, EventArgs e)
{
GetData();
}
public async void GetData() {
var requestparams = new Dictionary<string, string>
{
{ "key", "123456789" },
{ "Operation", "GetEntityTypes" }
};
var content = new FormUrlEncodedContent(requestparams);
var response = await client.PostAsync("https://api.someserver.com/", content);
var responseString = await response.Content.ReadAsStringAsync();
Response.Write(responseString);
}
我知道也许有一种更性感的方式可以做到这一点,但我还是感到茫然
谢谢 好吧,我想我找到了一个有效的方法。我使用以下命令转储异步:
private static readonly HttpClient client = new HttpClient();
public string GetEntities(string entity, string attributes, string apiurl, string key)
{
var requestparams = new Dictionary<string, string>
{
{ "key", key },
{ "Operation", "GetEntities" },
{ "Entity", entity },
{ "Attributes",attributes}
};
var content = new FormUrlEncodedContent(requestparams);
var task = System.Threading.Tasks.Task.Run(() => client.PostAsync(apiurl, content));
task.Wait();
var result = task.Result;
var response = result.Content.ReadAsStringAsync().Result;
return (response);
}
}
private static readonly HttpClient=new HttpClient();
公共字符串GetEntities(字符串实体、字符串属性、字符串APIRL、字符串键)
{
var requestparams=新字典
{
{“key”,key},
{“操作”,“获取实体”},
{“实体”,实体},
{“属性”,属性}
};
var content=newformurlencodedcontent(requestparams);
var task=System.Threading.Tasks.task.Run(()=>client.PostAsync(apirl,content));
task.Wait();
var result=task.result;
var response=result.Content.ReadAsStringAsync().result;
返回(响应);
}
}
对于我正在使用的小数据集,似乎效果很好。好的,所以我想我找到了一种有效的方法。我使用以下命令转储异步:
private static readonly HttpClient client = new HttpClient();
public string GetEntities(string entity, string attributes, string apiurl, string key)
{
var requestparams = new Dictionary<string, string>
{
{ "key", key },
{ "Operation", "GetEntities" },
{ "Entity", entity },
{ "Attributes",attributes}
};
var content = new FormUrlEncodedContent(requestparams);
var task = System.Threading.Tasks.Task.Run(() => client.PostAsync(apiurl, content));
task.Wait();
var result = task.Result;
var response = result.Content.ReadAsStringAsync().Result;
return (response);
}
}
private static readonly HttpClient=new HttpClient();
公共字符串GetEntities(字符串实体、字符串属性、字符串APIRL、字符串键)
{
var requestparams=新字典
{
{“key”,key},
{“操作”,“获取实体”},
{“实体”,实体},
{“属性”,属性}
};
var content=newformurlencodedcontent(requestparams);
var task=System.Threading.Tasks.task.Run(()=>client.PostAsync(apirl,content));
task.Wait();
var result=task.result;
var response=result.Content.ReadAsStringAsync().result;
返回(响应);
}
}
对于我正在使用的小数据集,似乎效果很好