我正在更改我的代码从 Azure 服务总线订阅接收消息的方式。
以前我使用的是 SDK 类,现在我正在更改为 http REST 调用。
为了为订阅创建规则并为此规则设置过滤器,我总是收到 http 400 作为返回。
看来我创建身体的方式不正确:
var rule = $"https://{serviceBusNamespace}.servicebus.windows.net/{topicPath}/subscriptions/{subscriptionName}/rules/{ruleName}";
var content = new StringContent(@"<RuleDescription xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.microsoft.com/netservices/2010/10/servicebus/connect"">
< Filter i: type = ""SqlFilter"" >
< SqlExpression > type = 'REPLY' AND username = 'blabla@contoso.com' </ SqlExpression >
</ Filter >
</ RuleDescription >
", Encoding.UTF8, "application/xml");
var requestResponse = await _httpClient.PutAsync(rule, content, new System.Threading.CancellationToken());
我还设置了以下标题:
_httpClient.DefaultRequestHeaders.Add("Authorization", _token);
_httpClient.DefaultRequestHeaders.Add("ContentType", "application/atom+xml");
_httpClient.DefaultRequestHeaders.Add("Accept", "application/atom+xml");
关于缺少什么的任何想法?
慕田峪7331174
相关分类