Мой метод запроса: сообщение
Content-type : application/x-www-form-urlencoded,
using HttpUtility.UrlEncode(RequestBody);
У меня возникла проблема, поскольку я преобразовываю свое тело Json в UrlEncode, по этой причине я отправляю в качестве сообщения в мой запрос RestSharp, как показано ниже.
\\Request Model
public class Request
{
public string MessageId { get; set; }
public bool IsOffline { get; set; }
public string LanguageCode { get; set; }
public string MessageType { get; set; }
}
\\xUnit
[Fact]
public void Login()
{
Request request = new Request
{
MessageId = Guid.NewGuid().ToString(),
MessageType = "KioskLogin",
IsOffline = false,
LanguageCode = "en"
};
String RequestBody = JsonConvert.SerializeObject(request);
//url encode the json
var payload = String.Format("payload={0}", HttpUtility.UrlEncode(RequestBody));
IRestResponse response = _restServices.PostRequest(payload);
Response parsedResponse = JsonConvert.DeserializeObject<Response>(response.Content);
response.StatusCode.Should().Be(HttpStatusCode.OK);
\\I Builded this RestSharp code Like
public IRestResponse PostRequest(String Request)
{
var restClient = new RestClient(ConfigurationReader.Get("Environment:QA:Endpoint"));
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddJsonBody(payload);
IRestResponse response = restClient.Execute(request);
return response;
}
Я могу отправить запрос в кодированной форме URLE, используя HttpUtility.UrlEncode(RequestBody)
, но у меня есть проблема здесь, в моем запросе я вижу, как "payload=%7B%0A%22MessageId%22%3A%20%222e55dcdf-d877-4970-870e-fef841aff9a1%22%2C%0A%09%22MessageType%22%3A%20%22Login%22%2C%0A%22IsOffline%22%3A%20false%2C%0A%09%22LanguageCode%22%3A%20%22es%22%0A%7D"
НоМне не нужно, чтобы это было в "" Мне нужно, чтобы это было так payload=%7B%0A%22MessageId%22%3A%20%222e55dcdf-d877-4970-870e-fef841aff9a1%22%2C%0A%09%22MessageType%22%3A%20%22Login%22%2C%0A%22IsOffline%22%3A%20false%2C%0A%09%22LanguageCode%22%3A%20%22es%22%0A%7D
Если это так, тогда я получу ответ правильно.