我試圖改變使用網站的API的文章內的價格上傳 它的文檔是在https://www.mkmapi.eu/ws/documentation/API_1.1:Stock試圖用PUT請求
在運行的時候,我得到一個錯誤417預期類失敗,這是從文檔中描述如下: 通常情況下,當您的請求具有不帶相應標頭和/或主體不作爲文本發送的XML主體時,您將收到417 Expectation Failed HTTP狀態代碼,但其字節表示形式。 417的另一個可能的原因是,當您發送超過1.024字節的主體數據而不添加標頭Expect:您的請求。
任何幫助,將不勝感激。我也應該說認證不是我可以下載我的文章價格的問題。
public void UpdateMarketPrice(string MarketID, string NewPrice)
{
// https://www.mkmapi.eu/ws/documentation/API_1.1:Stock
String finalResult;
String method = "PUT";
String url = "https://www.mkmapi.eu/ws/v1.1/stock";
HttpWebRequest request = WebRequest.CreateHttp(url) as HttpWebRequest;
OAuthHeader header = new OAuthHeader();
request.Headers.Add(HttpRequestHeader.Authorization, header.getAuthorizationHeader(method, url));
request.Method = method;
request.ContentType = "text/xml; encoding='utf-8'";
XElement xmlDoc =
new XElement("request",
new XElement("article",
new XElement("idArticle", MarketID),
new XElement("idLanguage", 1),
new XElement("comments", "Edited through the API"),
new XElement("count", 7),
new XElement("price", 11),
new XElement("condition", "NM"),
new XElement("isFoil", false),
new XElement("isSigned", false),
new XElement("isPlayset", false)
)
);
String finalXML = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" + xmlDoc.ToString();
MessageBox.Show(finalXML);
byte[] bytes = Encoding.ASCII.GetBytes(finalXML);
request.ContentLength = bytes.Length;
using (Stream putStream = request.GetRequestStream())
{
putStream.Write(bytes, 0, bytes.Length);
}
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
finalResult = reader.ReadToEnd();
}
MessageBox.Show(finalResult);
}
驚人的作品!非常感謝! –
很高興聽到它的作品!我昨天實際遇到了與mkmapi相同的問題,但自從我工作以來,我沒有時間爲自己嘗試這種溶劑。 – Tim