如何使用C#替换请求网址中的参数?

时间:2019-02-12 16:04:43

标签: c# rest string-interpolation string.format

我有n个请求网址,如下所示

https://{user.id}/{user.name}/testing1
https://{user.number}/{user.name}/testing1
https://{user.age}/{user.height}/testing1
https://{user.gender}/{user.name}/testing1
https://{user.height}/{user.age}/testing1
https://{user.weight}/{user.number}/testing1

我有以下具有n个值的测试数据类。

public class User{
public string id = "123";
public string name = "456";
public string age = "789";
public string gender = "1478";
public string height = "5454";
public string weight = "54547";
public string number = "88722";
.......
.......
.......
}

我需要输入网址

https://{user.number}/{user.name}/testing1 into 
https://{88722}/{456}/testing1

在我的代码中,我将从json文件中随机获取请求url,并且需要用类中给定的值替换参数。能做到吗?如果是,请帮助。谢谢

我尝试使用string.format()-但它不起作用,因为我随机获得了url,并且不确定是否需要替换哪个值。 我也尝试过使用插值法,但是发现除非我可以做类似

的操作,否则它都无济于事
User user = new User();
string requesturl = GetRequestJSON(filepath);

//The requesurl variable will have a value like 
//"https://{user.id}/{user.name}/testing1";

string afterreplacing = $+requesturl;

更新:经过更多的搜索之后,我发现我的问题与this非常相似。我可以将第一个答案的替代选项2用作临时解决方案。

1 个答案:

答案 0 :(得分:1)

除非我清楚地遗漏了这一点(并且假设您在执行新的user();时所有值都在其中)

你只想要

User user = new User();
string requesturl = $"https://{user.id}/{user.name}/testing1";

然后将所有变量(如{user.id})替换为值。例如“ https://88722/456/testing1,如果您需要在其中使用{},则可以添加额外的{{,例如

 string requesturl = $"https://{{{user.id}}}/{{{user.name}}}/testing1";