所以我有一个Web客户端ShazamClient,我想从中使用jQuery从远程web api ShazamService获取数据并将数据发布到远程web api。起初我在jQuery中直接尝试POSTing到ShazamService,但是得到了与CORS相关的错误,这在ShazamService上没有启用。因此,为了解决这个问题,我想直接将请求从ShazamClient的Controller
或ApiController
转发到ShazamService中的相应方法调用。所以我基本上想要:
public class ShazamClientController : ApiController // or Controller
{
public string Upload()
{
return Request.Forward(@"https:\\shazamservice.com\api\upload");
}
}
我在网上找到的大部分内容与重定向等有关 - 有一种简单的方法吗?
答案 0 :(得分:0)
您可以使用HttpClient并重复发送到控制器的内容向服务发出请求。
答案 1 :(得分:0)
好吧,如果你"代理",这里有WebAPI
HTML /网页:
<h1 id="dataTarget"></h1>
<script>
....
//Because Web API wants it's own "keyless" format for [FromBody] data (=value)
var _data = { "": "data foo" };
$.post("api/values", _data, function(d) {
console.log(d);
$("#dataTarget").text(d.foo + ' ' + d.bar);
});
</script>
使用WebAPI ValuesController
{/ 1}}稍微修改了[FromBody]
操作的默认支架:
// POST api/values
public async Task<JObject> Post([FromBody]string value)
{
using (var client = new HttpClient())
{
/*
* See http://www.jsontest.com/#echo for usage
* which serves as the "other" service you are "proxying"
*
* Echoed values will be used in front end html
*/
return JObject.Parse(await client.GetStringAsync("http://echo.jsontest.com/foo/hello/bar/world"));
}
}
&#34;魔法&#34; WebAPI
:
... H个