我對 REST API 的東西完全陌生,我嘗試使用 XML 正文向服務器發送 POST。服務器沒問題(我可以得到一些不同 GET 呼叫的回應),但是當我嘗試進行 POST 時,我得到“方法名稱無效”。我看不出有什么問題...
這是我的代碼(C#)的一部分:
string post_body = "<?xml version=\"1.0\" encoding=\"utf-8\"?> "
"<mark> "
$"<idMark>{idMark}</idMark> "
$"<idClipLog>{idClipLog}</idClipLog> "
$"<freeDescription>{freeDescription}</freeDescription> "
$"<tcOut>{tcOut}</tcOut> "
$"<tcIn>{tcIn}</tcIn> "
"<clipLogOperator> "
$"<OperatorName>{operatorName}</OperatorName>"
"</clipLogOperator>"
"<clipLogLayer>"
$"<layerName>{layerName}</layerName>"
"</clipLogLayer>"
"<markKeyword>"
$"<idMark>{idMKMark}</idMark>"
$"<idMarkKeyword>{idMarkKeyword}</idMarkKeyword>"
$"<keyword>{keyword}</keyword>"
"</markKeyword>"
"</mark>";
var httpContent = new StringContent(post_body);
var requestUri = $"VideoTags.asmx/CreateMark";
var response = _httpClient.PostAsync(requestUri, httpContent).Result;
if (!response.IsSuccessStatusCode)
{
var xmldata = response.Content.ReadAsStringAsync();
var xmlSerializer = new XmlSerializer(typeof(cExtendedSessionsResult));
using (StringReader reader = new StringReader(xmldata.Result))
{
try
{
var logIdResp = (cExtendedSessionsResult)xmlSerializer.Deserialize(reader);
}
catch
{
throw new Exception($"[E04071035] Error in CreateMark [{_server}]");
}
}
}
也許是正文內容的問題?我需要在 POST 正文中傳遞 XML。我從我的 XML 創建 StringContent 并傳遞給 PostAsync 呼叫。這是對的?
HttpClient 似乎有正確的 BaseAddress (正如我之前所說,我能夠呼叫一些 get 函式)。
提前致謝!
uj5u.com熱心網友回復:
非常感謝大家!最后我可以和提供者交談,并且似乎是 API 介面規范中的錯誤。
再次感謝你!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/460494.html
標籤:C# 休息 邮政 httpclient
