c#应用程序中的post请求中的特殊字符

时间:2016-04-14 12:06:10

标签: c# .net http restsharp rest-client

我有这个c#方法

public void TestMethod1()
{
    string login =  @"partone\afif@gmail.com" ;
    string pwd = "ksLLHddf5El";

    var request = new RestRequest("https://secureapp4.idshost.fr/authenticationids/restloginservice.php", Method.POST);
    request.RequestFormat = DataFormat.Json;
    request.AddHeader("Content-type", "application/json;charset=utf-8");
    request.AddBody(new { authentifier = login, password = pwd });
    RestClient client = new RestClient();
    var response = client.Execute(request);
    var data = response.Content; 
}

问题是登录字符串中的特殊字符\,它会生成无效的authentifier参数。

所以我需要知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

问题可能与接收Rest端点有关。

查看了RestSharp代码后,它正确地序列化了\字符。

因此,当生成JSON时,它将使用两个"partone\\afif@gmail.com"将您的登录信息转换为\\。您需要确保端点正确地将其解析回partone\afif@gmail.com

它也有点奇怪,错误是说它是一个无效的参数,因为你是在体内发送它。

甚至更奇怪的是,在您的示例代码中,您尝试发布到WSDL URL。 WSDL用于SOAP Web服务,而不是宁静的Web服务。