使用 HttpWebRequest 的 C# Ebay API 订单后 check_eligibility

标签 c# post httpwebrequest ebay-api

我尝试在 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/

相关文章:

c# - 服务器违反了协议(protocol)。 Section=ResponseHeader Detail=CR 必须跟在 LF 之后,在 WinForms 中?

c# - WebResponse contentLength 属性是-1?

C#通过按键结束图像移动

c# - 嵌入或引用项目

asp.net-mvc - Kendo DateTimePicker 没有发布 asp.net MVC

Python urllib POST 响应

c# - 序列化从 LINQ to SQL 生成的类

c# - 如何使用内存流将 WinForms 应用程序中的 MS Chart 插入到 Outlook 电子邮件中?

PHP + SQL - 选择存在时的情况 (...) - 如果 0 插入行

c# - 使用 C# 以编程方式登录 Microsoft Online 网站