我正在尝试使用网址中的句点发出GET http请求
例如 http://testsite.com/TestEndpoint/Members/first%2Elast%40testemail%2Ecom
在上面的示例中,first.last@testemail.com转义为 first%2Elast%40testemail%2Ecom
问题是HttpClient从字符串中创建一个Uri,该字符串将%2E 取消转义为。(部分网址变为 first.last%40testmail。 com ),这会导致公共API抛出未找到端点的错误。
我可以从Postman发出此请求,它可以正常工作,但可以从.net HttpClient或WebRequest.Create失败。
有没有办法告诉HttpClient不要取消转义URL?
var uri = new Uri("http://testsite.com/TestEndpoint/Members/first%2Elast%40testemail%2Ecom");
我也尝试过Creating an Uri in .NET automatically urldecodes all parameters from passed string
但这无效,不确定该功能是否已损坏或不再受支持。
答案 0 :(得分:-1)
您可以尝试通过以下方法进一步“转义”您想要的URL:
client.GetAsync(new Uri("http://testsite.com/testendpoint?members=" + HttpUtility.UrlEncode("first%2Elast%40testemail%2Ecom"));