加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-web-api – Net Web API – 如何在Get上传递URL作为输入

发布时间:2020-12-15 21:01:13 所属栏目:asp.Net 来源:网络整理
导读:我试图从Angular REST调用将URL作为输入参数传递给ApiController. URL作为查询字符串(这是SharePoint中的提供商托管应用程序,我需要URL来查询SP FWIW). 这是ApiController中的方法签名: // GET: api/ProjectSite/5public IEnumerableProjectSite Get(string
我试图从Angular REST调用将URL作为输入参数传递给ApiController. URL作为查询字符串(这是SharePoint中的提供商托管应用程序,我需要URL来查询SP FWIW).

这是ApiController中的方法签名:

// GET: api/ProjectSite/5
public IEnumerable<ProjectSite> Get(string id)
{
    return ProjectSite.GetAllProjectSites(id);
}

这是我在Angular中进行调用的地方:

var spUrl = "'" + getParameterByName("SPHostUrl") + "'";

var queryUrl = "/api/ProjectSite/" + encodeURIComponent(spUrl);
return $http.get(queryUrl);

这会生成一个如下所示的GET请求:

https://localhost:12345/api/ProjectSite/https%3A%2F%2Fcompany.sharepoint.com%2Fsites%2Fsite_dev%2Fweb

当我这样做时,我得到’HTTP 400(错误请求)’.如果我停止在Angular代码中的断点并将输入参数更改为一个简单的字符串(例如’asdf’),则会进行REST调用,并且我会看到Api被调用.如果我不更改字符串并在Get Api方法中放置断点,则不会到达断点,表明代码在路由引擎中的某处爆炸.

我没有得到的是,虽然它的编码,我试图传递的字符串应该仍然被视为一个字符串,对吧?我也尝试将输入更改为Uri,但这似乎不起作用(并且Uri未列为支持的输入类型,无论如何).

有谁知道如何传递URL作为输入参数?

解决方法

您是否尝试使用查询字符串调用它?
var queryUrl = "/api/ProjectSite?id=" + encodeURIComponent(spUrl);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读