使用RestSharp通过Etsy API上传图像

时间:2014-12-08 20:31:55

标签: c# image oauth restsharp etsy

我试图通过我正在开发的网络应用程序将图像和新列表添加到我的Etsy帐户。目前,我正在使用:

RestRequest request = new RestRequest("listings", Method.POST);

request.AddFile("image", ReadToEnd(o.mainPhoto), "test.bmp", "image/bmp");
request.AddParameter("image", "test.bmp");

request.AddParameter("title", "This is a test");
request.AddParameter("description", "Test Description");
request.AddParameter("status", "draft");
request.AddParameter("quantity", "1");    
request.AddParameter("price", "5");
request.AddParameter("is_supply", "false");
request.AddParameter("category_id", "68887420");
request.AddParameter("when_made", "2013");
request.AddParameter("who_made", "i_did");
request.AddParameter("shipping_template_id", 5463224); 
var etsyResponse = restClient.Execute<EtsyListing>(request);

除了没有图像外,列表已正确创建。

我注意到etsyResponse的内容包含有关上传图像的信息(即大小,名称等),包括&#34; tmp_name&#34;为图像创建。我应该将列表与&#34; tmp_name&#34;相关联。从etsyResponse而不是上传的文件名?

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我实际上只是遇到了完全相同的问题。我正在使用带有RestSharp的C#服务器端处理程序使用来自HttpPostedFile实例的图像数据发布新列表。草稿列表创建得很好,但没有任何图像。就像你提到的那样,我看到了tmp_name和errors值似乎表明图像已经创建了。经过实验,我的最终解决方案就是:

  1. 创建没有图像文件的新列表。
  2. 从回复中获取新商家信息的listing_id值。
  3. 发布对资源的第二次调用 - (&#34; listing / [您的新列表&#39; ID] /图像&#34;)。将图像文件添加到此请求。我还添加了rank参数来控制图像的显示顺序。
  4. 希望这有帮助。