hat Wenn dies ein Duplikat einer vorhandenen Frage ist, lassen Sie mich bitte wissen, welcher Post eine ähnliche Situation hat.HttpPost-Anfrage funktioniert nicht, wenn JSON-String HTML in
Ich versuche eine POST-API aufzurufen, die von REST-Clients wie POSTMAN tatsächlich einwandfrei funktioniert.
Wenn ich versuche, diese API von C# mit HttpClient
aufzurufen, funktioniert es nur, wenn ich keinen HTML-Inhalt im Anfragetext verwende.
Hier ist mein Code:
HttpClient client = new HttpClient();
string baseUrl = channel.DomainName;
client.BaseAddress = new Uri(baseUrl);
client.DefaultRequestHeaders
.TryAddWithoutValidation(
"Content-Type",
"application/x-www-form-urlencoded;charset=utf-8");
const string serviceUrl = "/api/create";
var jsonString = CreateApiRequestBody(model, userId, false);
var uri = new Uri(baseUrl + serviceUrl);
try
{
HttpResponseMessage response = await client.PostAsync(uri.ToString(), new StringContent(jsonString, Encoding.UTF8, "application/json"));
if (response.IsSuccessStatusCode)
{
Stream receiveStream = response.Content.ReadAsStreamAsync().Result;
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
var str = readStream.ReadToEnd();
}
...
}
Und mein jsonString
wie folgt aussieht:
{
\"user_id\":\"6\",
\"description\":\"<h2 style=\\\"font-style:italic;\\\"><u><font><font>Test Test Test </font></font></u></h2>\\n\\n<p style=\\\"font-style: italic;\\\">Hi it's a Test JOB</p>\\n\\n<p> </p>\"
}
Wenn ich Klartext in description
-Tag verwenden, die API eine gültige Antwort zurückgibt, aber nicht mit der HTML-Inhalt darin.
Ich glaube, ich könnte einige zusätzliche Header oder etwas anderes fehlen.
Jede Hilfe wird sehr geschätzt.
Haben Sie versucht, sowohl content-type als auch accept-type als application/json zu setzen? – uTeisT
Inhaltstyp für Anwendung/josn verwenden Content-Type: application/json –
Ich habe versucht mit, client.DefaultRequestHeaders.TryAddWithoutValidation ("Content-Type", "application/json"); und es hat nicht funktioniert für mich –