首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用refit发布uri参数

使用refit发布uri参数
EN

Stack Overflow用户
提问于 2021-10-11 12:47:32
回答 1查看 116关注 0票数 0

我有一个包含Uri实例的类。该类将作为参数发送到REST api

代码语言:javascript
复制
[Serializable]
public class SomeClass
{
    public Uri Uri { get; set; }
}

public interface IRefitExample
{       
    [Post("/api/example")]
    Task<string> Example(SomeClass someClass);
}

由于某些原因,Uri对象不能通过refit正确传递。

Uri绝对url字符串在客户端如下所示:

"file:///var/share"

当它到达服务器时,它看起来像这样:

"/var/share"

重新调整初始化如下所示:

代码语言:javascript
复制
var settings = new RefitSettings(new NewtonsoftJsonContentSerializer());
            _apiRefit = RestService.For<ISomeApi>($"http://localhost:5000", settings);

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-11-25 18:17:19

也许我没有正确理解这个问题,但改装没有问题。在您的RefitSettings中,您可以使用NewtonsoftJsonContentSerializer(),它根据ISerializable接口的实现对Uri对象进行序列化,并像这样将json:{"Uri":"file:///var/share"}传递到http请求主体中。

文件URI的下一个格式是:file://host/path。如果省略host,则将其视为"localhost",即从中解析URL的计算机。注意,当省略host时,斜杠不会被省略(当"file:///foo.txt“是有效的”时,file://foo.txt“是无效的,尽管有些解释器设法处理后者)。

因此,示例中的URI指向本地计算机上的以下路径共享(与/var/ ./var/share相同)。

此链接可能很有帮助:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69526454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档