我尝试在 C# 中使用来自 eBay Post-Order API 的 check_eligibility 调用,但非常不成功。每次我都得到不好的回应。这是我尝试过的一种方法:
string url = "https://api.ebay.com/post-order/v2/cancellation/check_eligibility";
HttpWebRequest cancelOrderRequest = (HttpWebRequest)WebRequest.Create(url);
cancelOrderRequest.Headers.Add("Authorization", "TOKEN " + AuthToken);
cancelOrderRequest.ContentType = "application/json";
cancelOrderRequest.Accept = "application/json";
cancelOrderRequest.Headers.Add("X-EBAY-C-MARKETPLACE-ID", "EBAY_US");
cancelOrderRequest.Headers.Add("legacyOrderId", ebayFullOrderId);
cancelOrderRequest.Method = "POST";
HttpWebResponse response = (HttpWebResponse)cancelOrderRequest.GetResponse();
这是我尝试过的另一种方法:
string url = "https://api.ebay.com/post-order/v2/cancellation/check_eligibility";
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
httpWebRequest.Headers.Add("Authorization", "TOKEN " + AuthToken);
httpWebRequest.Headers.Add("X-EBAY-C-MARKETPLACE-ID", "EBAY_US");
httpWebRequest.Accept = "application/json";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{\"legacyOrderId\":\"###-###\"";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
无论我尝试哪种方式,都会返回相同的消息:“远程服务器返回错误:(400) 错误请求。”如果有人能指出我正确的方向,我将不胜感激。谢谢。
最佳答案
我的第二个代码示例最终成为解决我的问题的正确方法。我意识到我的 json 有点不对劲。我最后漏掉了额外的 } 。下面更新的 json 语法解决了我的第二个示例中的代码问题。
var json = "{\"legacyOrderId\":\"" + ebayFullOrderId + "\"}";
关于使用 HttpWebRequest 的 C# Ebay API 订单后 check_eligibility,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43645145/