我通过PUT请求(必需)与第三方API集成。但是,URL不是我认为的标准。
请注意,预订编号不在正文中,也不作为参数,只是一个/那么数字。
他们编码了预订号码(通过另一个API调用请求)。问题是我正在使用HttpRequestMessage,这会将%2F解码为/。意思是它失败了。我已经尝试过对特殊字符进行双重编码,但这并没有返回一致的响应,有时候它会失败它有效(使用不同的保留号,只有%2F是双重编码的)。有没有办法阻止HttpRequestMessage解码部分URL?
我尝试过编码/解码,但总是在这里被删除(除非双重编码:
var path = "https://standard.com/services/U2FsdGVkX18qfVhkTn7JsiXWA8q4vco7vpU%2BmeKqiXKafdKxfJqsq1ELGFOHIilpoR7VXqUcg89yXiabxjjfVXiRmVqGOffsKw%2BKLp5OU6%2FJZaTyn6BYxi%2F10ndtWFLG2KgxRmm%2BxtgTAopUi6m7wWTnSoAlL8qoS%2F3UbiippOw%3D";
var requestMessage = new HttpRequestMessage(HttpMethod.PUT, path);
var requestMessage = (HttpWebRequest)WebRequest.Create(path);
var requestMessage = new HttpRequestMessage(method, new Uri(path));
更新:这是微软做出的一项设计决定:
从他们的角度来看解决方案是在中添加一个设置 web.config中。但这是一个类库,因此使用更多 比一个项目。我不想改变它,除非我真的必须