Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何停止重新安装查询字符串的编码?_C#_Uri_Refit - Fatal编程技术网

C# 如何停止重新安装查询字符串的编码?

C# 如何停止重新安装查询字符串的编码?,c#,uri,refit,C#,Uri,Refit,我使用的是一个测试版API,它本质上是Mongodb的查询字符串作为参数。Refit正在对我的url进行编码,其中包含大量大括号,他们的服务器不喜欢它,它实际上忽略了我的所有查询属性 我尝试将整个查询作为字符串传递,这不起作用,但也不会抛出错误。我发现了一个直接解决这个问题的重新安装承诺。 这意味着使用标题[QueryUriFormat(UriFormat.Unescaped)],听起来不错,但我显然没有使用QueryUriFormat属性所在的库,我在谷歌搜索中找不到它 在界面中: [Quer

我使用的是一个测试版API,它本质上是Mongodb的查询字符串作为参数。Refit正在对我的url进行编码,其中包含大量大括号,他们的服务器不喜欢它,它实际上忽略了我的所有查询属性

我尝试将整个查询作为字符串传递,这不起作用,但也不会抛出错误。我发现了一个直接解决这个问题的重新安装承诺。 这意味着使用标题
[QueryUriFormat(UriFormat.Unescaped)]
,听起来不错,但我显然没有使用
QueryUriFormat
属性所在的库,我在谷歌搜索中找不到它

在界面中:

[QueryUriFormat(UriFormat.Unescaped)]
[Headers("Authorization: Basic")]
[Get("/stuff/etc")]
Task<myModel> GetStuff(string q);
电话:

var result = client.GetUsageSince(stringB).Result;
我尝试了第一条评论的链接(如下)

var-HttpClient=new-HttpClient(new-UriQueryUnescapingHandler()){BaseAddress=new-Uri(url)};
HttpClient.DefaultRequestHeaders.Add(“接受”、“应用程序/json”);
HttpClient.DefaultRequestHeaders.Add(“内容”、“应用程序/json”);
var byteArray=Encoding.UTF8.GetBytes($“{username}:{password}”);
HttpClient.DefaultRequestHeaders.Authorization=新系统.Net.Http.Headers.AuthenticationHeaderValue(“Basic”,Convert.ToBase64String(byteArray));
Stuff=RestService.For(HttpClient,设置);

执行此操作后,看起来绝对Uri现在是正确的,但是基本的auth头在我的客户
HttpClient

上不起作用。我在转义字符方面遇到了类似的问题,并且正在寻找相同的解决方案,但似乎QueryRiAttribute的修复程序尚未进入Nuget包。糟糕,但这还没有准备好使用。您可以在这里查看它的历史,我在转义字符方面遇到了类似的问题,并且正在寻找相同的解决方案,但是看起来QueryRiatAttribute的修复程序还没有进入Nuget包。糟糕,但这还没有准备好使用。你可以在这里看看它的历史
var result = client.GetUsageSince(stringB).Result;
 var HttpClient = new HttpClient(new UriQueryUnescapingHandler()) { BaseAddress = new Uri(url) };
        HttpClient.DefaultRequestHeaders.Add("Accept", "application/json");
        HttpClient.DefaultRequestHeaders.Add("Content", "application/json");
        var byteArray = Encoding.UTF8.GetBytes($"{username}:{password}");
        HttpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
        Stuff = RestService.For<IStuff>(HttpClient, refitSettings);