Dynamics - 通过国际fomat中的电话号码过滤Web API

时间:2017-01-11 13:51:03

标签: javascript asp.net-web-api microsoft-dynamics

我使用该URI来请求与特定电话号码匹配的联系人实体:

/api/data/v8.1/contacts?$filter=telephone1 eq '"+ phoneNumber +"' or telephone2 eq '"+ phoneNumber +"' or telephone3 eq '"+ phoneNumber +"' or mobilephone eq '"+ phoneNumber +"' &$select=contactid,firstname,lastname,emailaddress1,birthdate"

由于电话号码只有数字:0033648000000,因此无效。但是,当我尝试使用国际格式化的电话号码:+33648000000时,即使3个联系人与指定的号码相关联,它也不会给我任何结果。没有显示错误,就像没有该号码的联系人一样。一些想法?

1 个答案:

答案 0 :(得分:0)

这与+符号是您网址中的特殊字符这一事实有关。您需要对电话号码进行编码,然后再将其添加到网址:

/api/data/v8.1/contacts?$filter=telephone1 eq '"+ encodeURIComponent(phoneNumber) +"' or telephone2 eq '"+ encodeURIComponent(phoneNumber) +"' or telephone3 eq '"+ encodeURIComponent(phoneNumber) +"' or mobilephone eq '"+ encodeURIComponent(phoneNumber) +"' &$select=contactid,firstname,lastname,emailaddress1,birthdate"